48日目 K&RのEcercise2-5 (「・ω・)「

ごめんなさい。アンサーブック見ました。
ループをどこで止めるのかわかんなかった。そうだよねヌル文字だよねあたりまえだよねorz
もったいないことしたなぁ もっと考える時間確保しとけばよかった

#include<stdio.h>

int any(char s1[], char s2[]);

main()
{
	char c1[100], c2[10];
	printf("文字列s1(英数)を入力してください\n");
	scanf("%s", c1);
	printf("文字列s2(英数)を入力してください\n");
	scanf("%s", c2);
	if (any(c1, c2) == -1)
		printf("文字列s1に文字列s2は存在しません\n");
	else 
		printf("s1に初めてs2が現れるのは%d文字目からです", any(c1, c2)+1);

	return 0;
}


int any(char s1[], char s2[])
{
	int i, j;
	for (i = 0; s1[i] != '\0'; i++)
		for (j = 0; s2[j] != '\0'; j++)
			if (s1[i] == s2[j])
				return i;
return -1;
}

エラーログ

  • scanf_sだとうまくできない
  • 初期化でc2 = "e"; とかしてもうまくいかない
  • 空白があるとプログラムが終わってしまう