str1
が存在するかどうかを確認するために、次のコードを作成しましstr2
た。ただし、すべてのシナリオで機能するわけではありません。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,j,flag=1;
char str1[]="goa",str2[]="gogoa";
if (strlen(str1)>strlen(str2))
{
printf("not found");
return;
}
for ( i = 0; str2[i]; i++)
{
if (str1[0]==str2[i])
{
for ( j = 0; str1[j]; j++)
{
if (str1[j]!=str2[i+j])
{
printf("not found");
flag=0;
}
}
break;
}
}
if (flag==1)
{
printf("found at index %d ",i);
}
getchar();
}
str1
開始文字が複数回存在する場合は機能しませんstr2
。それ以外の場合は正常に機能します。これを最適化して、すべてのシナリオで機能させるにはどうすればよいですか?