在某字符串中查找子字符串第一次出现的位置

c编程:在某字符串中找出指定子串在该字符串中第一次出现的位置

c语言编程
要求如下:
计以数组名作为参数的函数,用来在某字符串中找出指定子串在该字符串中第一次出现的位置。此位置用子串第一个字符在字符串中的位置来表示,如该字符串不包含子串则返回0。并设计主函数测试上述函数的功能

字符串中的位置用0,1,2,3...表示
如该字符串不包含子串则返回 -1, 包含返回 位置

#include "stdio.h"
int f(char *s, char *a)
{
int ls,la,i;
int flag = -1;
ls = strlen(s);
la = strlen(a);
if (la > ls) return -1;
for (i=0;i<=ls-la;i++){
if (strncmp(s+i,a,la)==0) return i;
}
return flag;
};

void main()
{
char s[]="abcd1234xyz";
char a[]="xy";
int i;
i = f(s,a);
if (i < 0) printf("No match\n"); else printf("Location %d\n",i);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-03
先测出2个字符串长度
然后比较是否完全相等

这个书上有原代码,我发给你?
第2个回答  2019-03-07

自己做的,没有用库函数:网页链接

相似回答