次のfindString()関数は、指定された引数の値を返します。findString()関数から返される結果の説明が必要です
FINDSTRING( "テキスト"、 "")( " "テキスト")0
FINDSTRINGを返す" は-1を返します。
findString( ""、 "")は-1を返します。
私はstrstrを読み、他の質問を見て、それを取得しません。
// find s1 inside source, return index number if found, -1 if not found
#include <stdio.h>
#include <stdbool.h>
int findString (const char source[], const char s[])
{
int i, j, foundit = false;
// try each character in source
for (i = 0; source[i] != '\0' && !foundit; ++i) {
foundit = true;
// now see if corresponding chars from s match
for (j = 0; s[j] != '\0' && foundit; ++j)
if (source[j + i] != s[j] || source[j + i] == '\0')
foundit = false;
if (foundit)
return i;
}
return -1;
}
int main (void)
{
int index;
printf ("index = %i\n", findString("text", ""));
printf ("index = %i\n", findString("", "text"));
printf ("index = %i\n", findString("", ""));
return 0;
}
デバッガでステップ実行しましたか?どのIDEを使用していますか? – Podo
gcc、minGW、notepad – user6923395
カジュアルな読み方では、関数が早期に問題を抱えてから-1を返すことが示唆されています。空の文字列を探す空間的なケースも論理的に見えます。 – usr2564301