続いて練習2−5も

なんか最初、練習2−4も2−5も題意を間違って取ってしまっていて、ぜんぜんダメだなって思ってしまった。2−4は「文字列から文字列をくりぬく」と勘違いしたし、2−5は「文字列のなかで最初に文字列があるところ」と勘違いしてしまった。K&Rははっきり文字列と「文字」との比較って書いてあるのにね。

#include <stdio.h>

/*
	文字列s2の任意の文字と等しい文字列s1の最初の
	文字位置を返す関数any(s1, s2)を書け。ただし、
	一致する文字がなければ-1を返す。(標準ライブラリ
	関数strpbrkは同じ働きをもつが、その位置への
	ポインタを返す。)
*/
int any(char *s1, char *s2)
{
	int i, j;
	int s1_length = strlen(s1);
	int s2_length = strlen(s2);
	
	for (i = 0; i < s1_length; i++) {
		for (j = 0; j < s2_length; j++) {
			if(s1[i] == s2[j]) {
				return i;
			}
		}
	}
	
	return -1;
}