『新・明解C言語 入門編 第2版』演習問題解答例 11ー6

演習11ー6

問: strcmp関数とstrncmp関数と同じ仕様の関数を作成せよ。

// Ex1106.c

#include <stdio.h>
#include <string.h>

char* strn_cmp(char* s1, char* s2, int n)
{
    int tmp = 0;
    int len = strlen(s2);

    for (int i = 0; i < len; i++) {
        tmp = tmp + (*s1++ - *s2++);
    }

    return tmp;
}


int main(void)
{
    char str1[10] = "AAAAA";
    char str2[128];
    int n;

    printf("\"%s\"との比較を行います。\n", str1);
    puts("\"XXXXX\"で終了します。");
    
    while (1) {
        
        printf("連結元の文字列:");
        scanf("%s", str2);
        
        printf("%sの,先頭から何文字を比較しますか:", str2);
        scanf("%d", &n);

        if (strcmp(str2, "XXXXX") == 0)
            break;

        printf("結果:strncmp(\"%s\", \"%s\", %d) = %d\n", str1, str2, n, strn_cmp(str1, str2, n));
    }

    return 0;
}

コメント

 これはつくってて楽しかった! ぜひ自力で。

 


書籍情報


コメント

タイトルとURLをコピーしました