演習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;
}
コメント
これはつくってて楽しかった! ぜひ自力で。
書籍情報
コメント