『新・明解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;
}

コメント

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

 


書籍情報



Copyright (C) 2016 "HYOGOKURUMI" All Rights Reserved./「来未炳吾・平極ルミ・HYOGOKURUMI」の発達障害考察を主とした全ての発信は、相互不干渉など特別な約束をした者達を除き、どなたでもご活用できます。ただし著作権は放棄しておりません。あしからずご了承ください。詳細は著作権に関するガイドラインをご一読ください。/「HYOGOKURUMI.site」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。