可利用strstr函數(shù)。
創(chuàng)新互聯(lián)建站主要從事做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務固鎮(zhèn),十余年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108
strstr函數(shù)功能是找出字符串中特定字符串第一次出現(xiàn)的位置。如果找到,返回字符串中出現(xiàn)特定字符串的地址;如果沒找到,返回空指針。如果要返回值是bool型的話,可以自寫一個函數(shù)根據(jù)strstr的返回值,判斷自寫函數(shù)的返回值。
如:
bool
strfind(*str1,*str2)
{
if(strstr(*str1,*str2)!=0)
return
true;
return
false;
}
如果要不區(qū)分大小寫,可以用strlwr(轉換為大寫)或strupr(轉換為小寫)將兩字符串同一轉換為大寫(或小寫)再作查找。
string里有一個這樣的函數(shù),我覺得挺符合你的要求
函數(shù)名: char* strstr(char *haystack, char *needle)
功 能: 從字符串haystack中尋找needle第一次出現(xiàn)的位置(不比較結束符NULL)
頭文件:#includestring.h
說明:返回指向第一次出現(xiàn)needle位置的指針,如果沒找到則返回NULL
字符串的函數(shù)很多,有輸入/輸出函數(shù):gets()/puts(),有拷貝函數(shù)strcpy(),字符串連接函數(shù):strcat(),字符串比較函數(shù)strcmp(),測長度函數(shù):strlen(),大小寫轉換:strlwr()/strupr()等等,如果調(diào)用的話,都要在頭文件加預處理命令:
#include
“string.h”。
首先要明白,sizeof不是函數(shù),而是操作符;strlen是函數(shù)。
操作符sizeof用來判斷對象、類型所占用的內(nèi)存空間的字節(jié)數(shù),strlen是計算一個字符串以字節(jié)計的長度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以計算出int、double、char這些類型所占用的字節(jié)數(shù)分別是4、8、1,而用strlen則是非法的。再如:若有char
a[20]="123";,那么,strlen(a)的結果是3,而sizeof(a)的結果是20;前者是字符串“123”的長度,后者是為數(shù)組a分配的內(nèi)存空間。還有:當計算一個指向字符串的指針時,sizeof得到的是指針本身的長度即固定為4(32位機),而strlen得到的是指針指向的字符串的長度。如:char
a[20]="1234567",*p=a;,則,sizeof(p)=4,而strlen(p)=7。似乎復雜了點。記住一個原則就好判斷:操作符sizeof用來計算系統(tǒng)為對象本身分配的空間(以字節(jié)計),函數(shù)strlen用來計算字符串的長度(以字節(jié)計)。
要返回字符串 需要返回char*類型
需要注意的是 返回的字符串 不能是該函數(shù)的局部變量,否則會導致出錯
可以是參數(shù)字符串,全局變量,靜態(tài)局部變量,或者動態(tài)分配的內(nèi)存
比如
char?*my_str_cpy(char?*d,?char?*s)
{
char?*p=d;
while(*p++=*s++);
return?d;//返回參數(shù)字符串。?
}
復制相關函數(shù):memcpy、memmove、strcpy、strncpy
字符串連接函數(shù):strcat、strncat
字符串比較函數(shù):memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函數(shù):memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相關函數(shù):memset、strerror、strlen