Heim > Fragen und Antworten > Hauptteil
先上代码吧
#include <stdio.h>
#include <string.h>
int main ()
{
char test[]="jei123";
char key[]="jeid23";
int length = strlen(key);
for(int i=0;i<length;i++)
{
if(strstr(test,&key[i])!=NULL)
{
printf ("%c已找到\n",key[i]);
}
else
{
printf ("%c失踪\n",key[i]);
}
}
return 0;
}
运行结果是
讲道理j e i都应该被找到的
接下来换代码
#include <stdio.h>
#include <string.h>
int main ()
{
char test[]="jei123";
char key[]="jei123"; //更换此处代码
int length = strlen(key);
for(int i=0;i<length;i++)
{
if(strstr(test,&key[i])!=NULL)
{
printf ("%c已找到\n",key[i]);
}
else
{
printf ("%c失踪\n",key[i]);
}
}
return 0;
}
此时又能被找到,求解
天蓬老师2017-04-17 13:45:38
strstr (str1, str2) 函数用于判断字符串str2是否是str1的子串。如果是,则返回str2在str1中出现的首地址
str1,str2是两个char类型指针
char test[]="jei123";
char key[]="jeid23";
for(int i=0;i<length;i++)
{
if(strstr(test,&key[i])!=NULL)
判断 " jeid23" 是 " jei123" 的子串 明显不是,所以返回为空
判断 " eid23" 是 " jei123" 的子串 明显不是,所以返回为空
以此类推
只会找到 2 3
将strstrt()改为strchr()就可以得到你想要的结果