在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标...
生活随笔
收集整理的這篇文章主要介紹了
在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标...
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
錄入兩個字符串,一個字符串是另一個字符串的字串,輸出子串首字母在長字符串的位置。
兩個解決辦法
使用庫函數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
總結
以上是生活随笔為你收集整理的在一个字符串寻找另一个字符串,并且输出短字符串头字母在长字符串的下标...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 调用 JNI JAR java 的
- 下一篇: tomcat端口占用后的解决办法