编写字符查找函数,在字符串string中查找c中的字符,如果找到则返回该字符的索引值即下标,否则返回-1
函数原形为:intmystrchr(charstring[],charc);编写主函数进行测试。输入一个字符串数据(长度<80)和一个字符,输出该字符的序号(从0开始)。...
函数原形为:
int mystrchr(char string[],char c);
编写主函数进行测试。输入一个字符串数据(长度<80)和一个字符,输出该字符的序号(从0开始)。
如输入如下:
asdffg & *123 hjkl
f
则输出为:
3
C语言编程,麻烦给出运算结果,谢谢 展开
int mystrchr(char string[],char c);
编写主函数进行测试。输入一个字符串数据(长度<80)和一个字符,输出该字符的序号(从0开始)。
如输入如下:
asdffg & *123 hjkl
f
则输出为:
3
C语言编程,麻烦给出运算结果,谢谢 展开
展开全部
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; }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询