これは私の呼びかけです:
testFunc(0,0,"+++++A+++b+c++++d+e++++f+g+++++h+i","Abcdefghi");
関数に:
void testFunc(int isRight, int step, const char* str1, const char* str2)
{
static int testNum = 1;
printf("test%d: %d\n", testNum++, extendedSubStr(isRight, step, str1, str2));
}
それは呼び出します:
int extendedSubStr(int isRight, int gap, const char* str1, const char* str2)
{
// find location of the first char
char * pch;
char * firstOcur;
pch=strchr(str1,str2[0]);
firstOcur = pch;
int i=0;
while (pch!=NULL)
{
i++;
// find next char from the remaining string
pch=strchr(pch+1,str2[i]);
}
if(i==strlen(str2))
{
// return position of the first char
return firstOcur-str1;
}
}
私の問題は、ヌルで終了する文字列を期待するstr1
使用を反復しようとしたときに始まります。strchr()
なぜかループし続けます。を使用しないことをお勧めしますmemchr()
。
null が終了していないstr1
のはなぜですか? str2
どうすればそれらを終了できますか?