欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标...

发布时间:2025/7/14 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

录入两个字符串,一个字符串是另一个字符串的字串,输出子串首字母在长字符串的位置。

两个解决办法

使用库函数strncmp(str1,str2,n);

功能:比较str1和str2两个字符串的前n个字母,一一比较,若str1大则返回1,若str1和str2相等,则返回0,否则返回-1;

int compare(char *str1, char *str2) {int i;int lenstr1 = strlen(str1);int lenstr2 = strlen(str2);if( lenstr1< lenstr2)return -1;//录入str2为短字符串for(i = 0; i <=lenstr1 - lenstr2; i++)//控制比较的次数{if(strncmp(str1+i,str2,lenstr2) == 0)//每次将长的字符串比较的首字母前移一个//比较的长度为短的字符串  return i;//返回首字母下标}return -1;} 第二种方法,用for语句 void main() {char str1[100];char str2[100];int i, j, k;int shortstr, longstr, flag;gets(str1);gets(str2);shortstr = strlen(str2);longstr = strlen(str1);for(i = 0; i <= longstr - shortstr; i++ )//控制比较的次数{k = i;//k是长字符串的比较首字母下标for(j = 0; j < shortstr; j++)//每次都要依次比较短的字符串和长字符串中短字符串的个数{ if(str2[j]==str1[k])flag++;k++;}if(flag == shortstr)printf("%d\n", i);elseflag = 0;} }


转载于:https://blog.51cto.com/11631662/1850894

总结

以上是生活随笔为你收集整理的在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。