#include <stdio.h>
char *a ="you";
char b[]="welcome you to chaina!";
int main()
{int i,j=0;char * p;
for (i=0;b[i]!='\0';i++)
{
if(*a==b[i])
{
p=a;
for(j=i;*p!='\0';j++)
{
if (*p!=b[j]) break;
p++;
}
if (*p == '\0')break;
}
}
printf ("%s",&b[i]);
}
就是说
#include <stdio.h>
char *a = "you";
char b[] = "welcome you to chaina!";
int main()
{
int i, j = 0;
char *p;
for (i = 0; b[i] != '\0'; i++)
{
if (*a == b[i])//a的第一个字符在b中被找到
{
p = a;
for (j = i; *p != '\0'; j++)
{
if (*p != b[j])//如果a内的字符和b对应位置的字符不对应
break;//break
p++;//p自增
}
if (*p == '\0')//如果扫描到结尾,说明匹配成功
break;
}
}
printf("%s", &b[i]);//此时的b[i]为b中第一处字符串a出现的首地址
}
在b中搜索a串,找到后输出b串中从找到位置开始的后续字符串
就是在b字符串中查找a字符串所在的位置,从a字符串所在的位置开始输出,