日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr

發(fā)布時間:2023/11/30 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

http://blog.csdn.net/itcastcpp/article/details/12907371

請用C語言實現(xiàn)字符串的查找函數(shù)strstr, 找到則返回子字符串的地址,沒有找到返回為空,請用數(shù)組操作與指針操作實現(xiàn)


看到題目想到最簡單的方法就是母字符串和子字符串比較,如果不同,將指向母字符串的指針向前移動,繼續(xù)查找,


下面我們分別用數(shù)組操作實現(xiàn),大家可以很容易改成指針操作實現(xiàn),

國際慣例,參考前面文章新建一個vs2013的工程,經(jīng)過前面的學習大家已經(jīng)對開發(fā)環(huán)境很熟悉了,下面我們直接上代碼:


[cpp]?view plain?copy
  • #include?<stdio.h>??
  • #include?<stdlib.h>??
  • #include?<string.h>??
  • ??
  • ??
  • char?*mystrstr(char?*Str,?const?char?*SubStr)??
  • {??
  • ????int?StrLen,?SubStrLen;??
  • ????StrLen?=?strlen(Str);??
  • ????SubStrLen?=?strlen(SubStr);??
  • ??
  • ??
  • ????//Str長度小于SubStrLen時直接跳過For返回空,??
  • ????//如果Str長度大于等于SubStr則依次遞進比較??
  • ????for?(int?i?=?0;?i?<=?StrLen?-?SubStrLen;?i++)??
  • ????{??
  • ????????int?j;??
  • ????????for?(j?=?0;?j?<?SubStrLen;?j++)??
  • ????????{??
  • ????????????if?(Str[i?+?j]?!=?SubStr[j])????//如果不等就跳出循環(huán)??
  • ????????????????break;??
  • ????????}??
  • ????????if?(j?==?SubStrLen)?????????//如果j?==?SubStrLen則找到匹配的子串??
  • ????????????return?&Str[i];??
  • ????}??
  • ??
  • ??
  • ????return?NULL;??
  • }??
  • ??
  • ??
  • int?main()??
  • {??
  • ????printf("%s??\n",?mystrstr("testxx123",?"xx12"));??
  • ????return?0;??
  • }??



  • 運行效果如下圖:



    如果有什么問題和疑問可以在下面留言互相探討。

    原題我已經(jīng)上傳到這里了http://download.csdn.net/detail/yincheng01/6461073?,

    解壓密碼為?c.itcast.cn



    總結(jié)

    以上是生活随笔為你收集整理的基于Visual C++2013拆解世界五百强面试题--题5-自己实现strstr的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。