编写字符查找函数,在字符串string中查找c中的字符,如果找到则返回该字符的索引值即下标,否则返回-1

函数原形为:intmystrchr(charstring[],charc);编写主函数进行测试。输入一个字符串数据(长度<80)和一个字符,输出该字符的序号(从0开始)。... 函数原形为:
int mystrchr(char string[],char c);
编写主函数进行测试。输入一个字符串数据(长度<80)和一个字符,输出该字符的序号(从0开始)。

如输入如下:
asdffg & *123 hjkl
f
则输出为:
3
C语言编程,麻烦给出运算结果,谢谢
展开
 我来答
l7722526
2018-05-11 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3747万
展开全部
s 和 t传入函数的是指针 而你执行s++,t++时只是让s和t的指针加一,而不是让他指向下一个字节;要指向下一个字节s和t指针要加对应字节指针所跨的指针数,不建议用这种方法来访问顺序表 下面是我写的 注释不全 看不懂Q我605311107 #include<stdio.h> int func(char s[],char t[]); int main(){ char s[15]; //存贮主串 char t[15]; //子串 int n; gets(s); gets(t); n=func(s,t); printf("%d",n); } int func(char s[],char t[]) { int i,j,k,l; for(i=0,l=0;i<15;i++){ if(t[i]!='\0') l++; else break; }//计算子串的长度 for(i=0,j=0;i<15;i++){ if(s[i]==t[j]){ // 扫描主串找和子串首等位置 for(k=0;i<15;i++,j++){ if(s[i]==t[j]&&t[j]!='\0') k++; //k用于和l比较 else if(k==l) return (i-k+1); else { j=0; break; } } } } return 0; }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式