c語言的strstr
㈠ c語言strstr()函數
思路:
從第一個字元串的第一位開始查找符合第二個字元串第一位的數據,如果找到,設定開始位置(記下來)
則循環判斷是否符合下一位的數據,如果出現不符合,則回到原記錄位置,重新查找符合第二個字元串的第一個位置的數據,如果找到,則。。。。循環前面一步的操作
如果完全符合,即第二個字元串遍歷結束,則返回記錄的位置
如此,你分析一下就可以得到一個嵌套循環的查找了
㈡ strstr函數全稱
在C語言中 strchr 和 strstr函數都被包含在<string.h>頭文件中,也就是要調用它們時要在程序前麵包含<string.h>頭文件,也就是寫這個語句:#include<string.h>
strchr函數原型:char * strchr(char * str, int ch); 功能就是找出在字元串str中第一次出項字元ch的位置,找到就返回該字元位置的指針(也就是返回該字元在字元串中的地址的位置),找不到就返回空指針(就是 null)。
strstr 函數原型: char * strstr(char * str1,char * str2);功能就是找出在字元串str1中第一次出項字元串str2的位置(也就是說字元串sr1中要包含有字元串str2),找到就返回該字元串位置的指針(也就是返回字元串str2在字元串str1中的地址的位置),找不到就返回空指針(就是 null)。
它們一個是求一個字元在字元串中得位置,另一個是求一個字元串在另一個字元串中的位置。
這些在C語言書最後面中都有的,你要學會去多看看書,要會自己解決問題。學編程是要有耐心的,學久了就會懂了。
㈢ c語言 strstr函數
1萬字也都輸出,控制辦法是將某個位置置為字元串結束符『\0'。
#include <stdio.h>
#include <string.h>
void main()
{
char a[]="我我我我哦我哦喔喔喔we喔我哦我我我我我我我我哦我我我為我我";
char *b="we";
char *p = strstr(a, b);
printf( "%s",p ); // 這里輸出"we喔我哦我我我我我我我我哦我我我為我我",有1萬字也輸出,除非遇見字元串結束符'\0'。
p[10] = '\0';
printf( "%d",p ); // 這里就只輸出"we喔我哦我"了,因為p[10]被設置為結束符0了。
}
㈣ 關於C語言中strstr()函數的使用
因為這個函數是查找匹配的子字元串,如果沒有找到完全匹配的就往回空
所以p
==
NULL
cout<<p;就是
cout
<<NULL;這個肯定會掛的
正確的做法就是
if(p)
cout
<<p;
else
cout<<"not
match"<<endl;
㈤ 請問C語言中strstr(strcat(str1,str2),str3)是什麼意思
strstr(strcat(str1, str2), str3);用於將str2連接到str1後面,構成新的字元串,然後在新字元串中查找包含str3的位置,
同時將該位置以後的字元串整個返回。
strcat(str1, str2)是將str2連接到str1末尾,由於strcat沒有做字元串長度檢查,必須保證傳入的str1的剩餘空間能夠容納
下str2,比如:
char str1[100] = "Hello";
char str2[] = world;
那麼strcat(str1, str2)返回的結果是:Helloworld
但如果str1長度只有"Hello",則會出現不可預料的錯誤。
strstr(str1, str2)則會在str1中查找str2,同時返回剩下的字元串,
比如:
char str1[] = "Hello";
char str2[] = "e";
則strstr(str1, str2)返回結果為: ello