C语言中在字符串中查找指定字符串拜托各位大神

求一段C代码要求:字符串str1="nayitianzhidaoanzd"str2="anz"str2在str1中查找出现的地址(要求查找str1中所有出现的位置,而不是... 求一段C代码 要求: 字符串str1="nayitianzhi daoanzd" str2="anz" str2在str1中查找出现的地址(要求查找str1中所有出现的位置,而不是找到一处就返回),要求全字匹配,不是查找到单个字符匹配就返回. 参数类似于C函数strpbrk, 请高手帮帮忙,谢谢,尽量加上注释,新手学习中 展开
 我来答
怪兽01231200
2015-05-13 · 超过70用户采纳过TA的回答
知道答主
回答量:121
采纳率:0%
帮助的人:127万
展开全部
int str_cmp(int n,char*a,char *b) {int i; for(i=0;i<n;i++) if(a[i]!=b[i]) return 0; return 1; } void f(int n,char *a,char *b) {int i,j; for(i=n;i<strlen(a);i++) {char m[100]; for(j=0;j<=i;j++) m[j]=a[j]; m[j]=0; strcat(m,b); if(str_cmp(strlen(m),a,m)) {puts(m); printf("%d\n",i+strlen(b)+1); f(m-a+1,a,b); } } } main() {char * str1="nayitianzhi daoanzd";//定义两个字符串,并有两个字符型指针指向 char * str2="anz"; f(0,str1,str2); system("pause");} 追问: 无法运行啊! 能写全了吗 把文件头都加上 C里运行 回答: #include<stdio.h> #include<stdlib.h> #include<string.h> int str_cmp(int n,char*a,char *b) {int i; for(i=0;i<n;i++) if(a[i]!=b[i]) return 0; return 1; } void f(int n,char *a,char *b) {int i,j; for(i=n;i<strlen(a);i++) {char m[100]; for(j=0;j<=i;j++) m[j]=a[j]; m[j]=0; strcat(m,b); if(str_cmp(strlen(m),a,m)) {puts(m); printf("%d\n",i+strlen(b)+1); f(m-a+1,a,b); } } } int main() {char * str1="nayitianzhi daoanzd";//定义两个字符串,并有两个字符型指针指向 char * str2="anz"; f(0,str1,str2); system("pause"); return 0; } 追问: 谢谢哥们 麻烦您能用指针的方式解决这题吗 不通过访问下标的形式 能加上注释吗 新手学习 麻烦您了 分不是问题
冥界军团MWLC
2015-05-13 · TA获得超过167个赞
知道答主
回答量:144
采纳率:66%
帮助的人:58.2万
展开全部
#include"stdio.h" #include"string.h" void main() { char *str1="nayitianzhi daoanzd"; char *str2="anz"; int index[20]; int num = 0; int i,j; for (i = 0; i < strlen(str1) - 3; i++) for (j = 0; j < 3; j++) { if (*(str1 + i) == *(str2 + j)) //比较 { i ++; //str1移到下一位 if (j == 2) //如果比较了三次都相等则找到一个 { index[num] = i - 2; //记录str1下标 num ++; } } else { i = i - j; //有不相等的跳出,i回到比较前的值 break; } } printf("共找到:%d个\n",num); printf("下标分别是:"); for (i = 0; i < num; i++) { printf("\t%d",index[i]); } getchar(); }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式