可利用strstr函數。
成都創新互聯是一家專業提供當涂企業網站建設,專注與成都網站制作、網站設計、H5建站、小程序制作等業務。10年已為當涂眾多企業、政府機構等服務。創新互聯專業的建站公司優惠進行中。
strstr函數功能是找出字符串中特定字符串第一次出現的位置。如果找到,返回字符串中出現特定字符串的地址;如果沒找到,返回空指針。如果要返回值是bool型的話,可以自寫一個函數根據strstr的返回值,判斷自寫函數的返回值。
如:
bool
strfind(*str1,*str2)
{
if(strstr(*str1,*str2)!=0)
return
true;
return
false;
}
如果要不區分大小寫,可以用strlwr(轉換為大寫)或strupr(轉換為小寫)將兩字符串同一轉換為大寫(或小寫)再作查找。
復制相關函數:memcpy、memmove、strcpy、strncpy
字符串連接函數:strcat、strncat
字符串比較函數:memcmp、strcmp、strcoll、strncmp、strxfrm、
查找函數:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok
其他相關函數:memset、strerror、strlen
string里有一個這樣的函數,我覺得挺符合你的要求
函數名: char* strstr(char *haystack, char *needle)
功 能: 從字符串haystack中尋找needle第一次出現的位置(不比較結束符NULL)
頭文件:#includestring.h
說明:返回指向第一次出現needle位置的指針,如果沒找到則返回NULL
string.h頭文件中包含的字符串函數
void?*memcpy(void?*dest,?const?void?*src,?size_t?n);//將n字節長的內容從一個內存地址復制到另一個地址;如果兩個地址存在重疊,則最終行為未定義
void?*memmove(void?*dest,?const?void?*src,?size_t?n);//將n字節長的內容從一個內存地址復制到另一個地址;與memcpy不同的是它可以正確作用于兩個存在重疊的地址
void?*memchr(const?void?*s,?char?c,?size_t?n);//在從s開始的n個字節內查找c第一次出現的地址并返回,若未找到則返回NULL
int?memcmp(const?void?*s1,?const?void?*s2,?size_t?n);//對從兩個內存地址開始的n個字符進行比較
void?*memset(void?*,?int,?size_t);//用某種字節內容覆寫一段內存空間
char?*strcat(char?*dest,?const?char?*src);//在字符串dest之后連接上src
char?*strncat(char?*dest,?const?char?*src,?size_t?n);//從src截取n個字符連接在字符串dest之后,返回dest字符串
char?*strchr(const?char*?str,?int?ch);//從字符串str頭開始查找字符ch首次出現的位置
char?*strrchr(const?char*?str,int?ch);//從字符串str尾開始查找字符ch首次出現的位置
int?strcmp(const?char?*,?const?char?*);//基于字典順序比較兩個字符串
int?strncmp(const?char?*,?const?char?*,?size_t);//基于字典順序比較兩個字符串,最多比較n個字節
int?strcoll(const?char?*,?const?char?*);//基于當前區域設置的字符順序比較兩個字符串
char?*strcpy(char*?str1,?const?char*?str2);//將str2拷貝給str1
char?*strncpy(char*?str1,?const?char*?str2,?size_t?n);//截取str2的n個字符拷貝給str1
char?*strerror(int);//返回錯誤碼對應的解釋字符串,參見errno.h(非線程安全函數)
size_t?strlen(const?char?*);//返回一個字符串的長度
size_t?strspn(const?char?*s,?const?char?*strCharSet);//從字符串s的起始處開始,尋找第一個不出現在strCharSet中的字符,返回其位置索引值。換句話說,返回從字符串s的起始位置的完全由strCharSet中的字符構成的子串的最大長度。strspn為string?span的縮寫。不支持多字節字符集。
size_t?strcspn(const?char?*s,?const?char?*strCharSet);//從字符串s的起始處開始,尋找第一個出現在strCharSet中的字符,返回其位置索引值。換句話說,返回從字符串s的起始位置的完全由不屬于strCharSet中的字符構成的子串的最大長度。strcspn為string?complement?span的縮寫。不支持多字節字符集。
char?*strpbrk(const?char?*s,?const?char?*strCharSet);//在字符串s中查找strCharSet中任意字符第一次出現的位置的指針值。strpbrk為string?pointer?break縮寫。不支持多字節字符集。
char?*strstr(const?char?*haystack,?const?char?*needle);//在字符串haystack中查找字符串needle第一次出現的位置,heystack的長度必須長于needle
char?*strtok(char?*strToken,?const?char?*strDelimit?);//將一個字符串strToken依據分界符(delimiter)分隔成一系列字符串。此函數非線程安全,且不可重入;但MSVC實現時使用了thread-local?static?variable因而是線程安全的單仍然是不可重入,即在單線程中不能對兩個源字符串交替調用該函數來分析token,應當對一個字符串分析完成后再處理別的字符串。
size_t?strxfrm(char?*dest,?const?char?*src,?size_t?n);//根據當前locale轉換一個字符串為strcmp使用的內部格式
首先要明白,sizeof不是函數,而是操作符;strlen是函數。
操作符sizeof用來判斷對象、類型所占用的內存空間的字節數,strlen是計算一個字符串以字節計的長度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以計算出int、double、char這些類型所占用的字節數分別是4、8、1,而用strlen則是非法的。再如:若有char
a[20]="123";,那么,strlen(a)的結果是3,而sizeof(a)的結果是20;前者是字符串“123”的長度,后者是為數組a分配的內存空間。還有:當計算一個指向字符串的指針時,sizeof得到的是指針本身的長度即固定為4(32位機),而strlen得到的是指針指向的字符串的長度。如:char
a[20]="1234567",*p=a;,則,sizeof(p)=4,而strlen(p)=7。似乎復雜了點。記住一個原則就好判斷:操作符sizeof用來計算系統為對象本身分配的空間(以字節計),函數strlen用來計算字符串的長度(以字節計)。
1)字符串操作
strcpy(p, p1) 復制字符串
strncpy(p, p1, n) 復制指定長度字符串
strcat(p, p1) 附加字符串
strncat(p, p1, n) 附加指定長度字符串
strlen(p) 取字符串長度
strcmp(p, p1) 比較字符串
strcasecmp忽略大小寫比較字符串
strncmp(p, p1, n) 比較指定長度字符串
strchr(p, c) 在字符串中查找指定字符
strrchr(p, c) 在字符串中反向查找
strstr(p, p1) 查找字符串
strpbrk(p, p1) 以目標字符串的所有字符作為集合,在當前字符串查找該集合的任一元素
strspn(p, p1) 以目標字符串的所有字符作為集合,在當前字符串查找不屬于該集合的任一元素的偏移
strcspn(p, p1) 以目標字符串的所有字符作為集合,在當前字符串查找屬于該集合的任一元素的偏移
* 具有指定長度的字符串處理函數在已處理的字符串之后填補零結尾符
2)字符串到數值類型的轉換
strtod(p, ppend) 從字符串 p 中轉換 double 類型數值,并將后續的字符串指針存儲到 ppend 指向的 char* 類型存儲。
strtol(p, ppend, base) 從字符串 p 中轉換 long 類型整型數值,base 顯式設置轉換的整型進制,設置為 0 以根據特定格式判斷所用進制,0x, 0X 前綴以解釋為十六進制格式整型,0 前綴以解釋為八進制格式整型
atoi(p) 字符串轉換到 int 整型
atof(p) 字符串轉換到 double 符點數
atol(p) 字符串轉換到 long 整型
3)字符檢查
isalpha() 檢查是否為字母字符
isupper() 檢查是否為大寫字母字符
islower() 檢查是否為小寫字母字符
isdigit() 檢查是否為數字
isxdigit() 檢查是否為十六進制數字表示的有效字符
isspace() 檢查是否為空格類型字符
iscntrl() 檢查是否為控制字符
ispunct() 檢查是否為標點符號
isalnum() 檢查是否為字母和數字
isprint() 檢查是否是可打印字符
isgraph() 檢查是否是圖形字符,等效于 isalnum() | ispunct()
網站欄目:關于字符的函數c語言 C語言字符
轉載源于:http://m.kartarina.com/article24/hjocce.html
成都網站建設公司_創新互聯,為您提供品牌網站設計、標簽優化、微信小程序、ChatGPT、服務器托管、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯