概述
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
int main()
{
char input1[100],input2[100];
printf("n请输入字符串1:n");
gets(input1);
printf("n请输入字符串2:n");
gets(input2);
/*开始查找,声明变量i,j,index*/
int i=0,j,index=0,counter=0,flag=1;
while(i
{
if(input1[i]==input2[0])
{
index = i;
flag = 0;
for(j=0;j
{
if(input1[index+j+1]==input2[j+1])/*潜在错误点1*/
{
counter++;
if(counter==strlen(input2)-1)
{
printf("n在字符串1中找到了字符串2:"
"n索引是: %dn",index);
}else continue;
}else {i=index+1;break;}
}
}
i++;
}
if(flag){printf("n没有找到n");}
system("pause");
return 0;
}
这是源代码,基本思想是:不用指针,当然用也可以;
先找到字符数组B的首字母在A中的索引,如果不存在,程序结束,反之,标记为index,从A[INDEX+J]开始跟B[J]一一对比,如果第一个字符匹配但后面的任意一个B长度-1范围内的后续字符不匹配,则跳出内层循环继续寻找下一个跟B[0]匹配的A[INDEX],然后继续,有点递归的思想。。。
我想提的问题是:打印的结果,还可能出现这样的情况:B在A中出现了2次或者更多,那么要求循环继续打印出后面出现的索引。。求高手改进代码
最后
以上就是乐观自行车为你收集整理的c语言中字符串a转换成b,自己写的函数:求字符串A中是否包含字符串B 期待改进。。高手进~...的全部内容,希望文章能够帮你解决c语言中字符串a转换成b,自己写的函数:求字符串A中是否包含字符串B 期待改进。。高手进~...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复