字符串連接函數(shù):strcat
盤州網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),盤州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為盤州上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的盤州做網(wǎng)站的公司定做!
字符串復(fù)制函數(shù):strcpy
字符串比較函數(shù):strcmp
測(cè)字符串長(zhǎng)度函數(shù):strlen
一、字符數(shù)組的定義
一維字符數(shù)組:用于存儲(chǔ)和處理1個(gè)字符串,其定義格式與一維數(shù)值數(shù)組一樣。
char str[20];
二維字符數(shù)組:用于同時(shí)存儲(chǔ)和處理多個(gè)字符串,其定義格式與二維數(shù)值數(shù)組一樣。
char country[10][20];
country[i]:第i個(gè)字符串
二.字符數(shù)組的初始化
字符數(shù)組的初始化.
1.可以通過(guò)為每個(gè)數(shù)組元素指定初值字符來(lái)實(shí)現(xiàn)。
char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
char str[ ]={"I am happy"}; 可以省略花括號(hào),如下所示
char str[ ]="I am happy";
char country[10][20]={“china”,”japanese”,……};
注意:上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時(shí)使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對(duì)其元素一一賦值,下面的賦值方法是錯(cuò)誤的
char str[15];
str="I am happy";
strcpy(str, "I am happy");
不是用單個(gè)字符作為初值,而是用一個(gè)字符串(注意:字符串的兩端是用雙引號(hào)“”而不是單引號(hào)‘’括起來(lái)的)作為初值。
‘a(chǎn)’ “a”區(qū)別
三、字符數(shù)組的引用
字符數(shù)組的逐個(gè)字符引用,與引用數(shù)值數(shù)組元素類似。
(1)字符數(shù)組的輸入
除了可以通過(guò)初始化使字符數(shù)組各元素得到初值外,也可以使用getchar()或scanf()函數(shù)輸入字符。
例如:
char str[10];
…… for(i=0; i10; i++)
{ scanf(\"%c\", str);
fflush(stdin); /*清除鍵盤輸入緩沖區(qū)*/
}
這里只是一部分具體你查看這里:
1.puts(字符數(shù)組) 輸出
2.gets(字符數(shù)組) 輸入
3.strcat(字符數(shù)組1,字符數(shù)組2) 字符串2接到字符串1的后面
4.strcpy和strncpy(字符數(shù)組1,字符串2,m) 將字符串2的前m個(gè)字符拷到str1中,最后加'\0'
5.strcmp(字符串1,字符串2) 兩字符串比較
6.strlen(字符數(shù)組) 字符串的實(shí)際長(zhǎng)度(不包括'\0')
7.strlwr(字符串) 大寫轉(zhuǎn)換為小寫
8.strupr(字符串) 小寫轉(zhuǎn)換為大寫
string.h頭文件中包含的字符串函數(shù)
void?*memcpy(void?*dest,?const?void?*src,?size_t?n);//將n字節(jié)長(zhǎng)的內(nèi)容從一個(gè)內(nèi)存地址復(fù)制到另一個(gè)地址;如果兩個(gè)地址存在重疊,則最終行為未定義
void?*memmove(void?*dest,?const?void?*src,?size_t?n);//將n字節(jié)長(zhǎng)的內(nèi)容從一個(gè)內(nèi)存地址復(fù)制到另一個(gè)地址;與memcpy不同的是它可以正確作用于兩個(gè)存在重疊的地址
void?*memchr(const?void?*s,?char?c,?size_t?n);//在從s開(kāi)始的n個(gè)字節(jié)內(nèi)查找c第一次出現(xiàn)的地址并返回,若未找到則返回NULL
int?memcmp(const?void?*s1,?const?void?*s2,?size_t?n);//對(duì)從兩個(gè)內(nèi)存地址開(kāi)始的n個(gè)字符進(jìn)行比較
void?*memset(void?*,?int,?size_t);//用某種字節(jié)內(nèi)容覆寫一段內(nèi)存空間
char?*strcat(char?*dest,?const?char?*src);//在字符串dest之后連接上src
char?*strncat(char?*dest,?const?char?*src,?size_t?n);//從src截取n個(gè)字符連接在字符串dest之后,返回dest字符串
char?*strchr(const?char*?str,?int?ch);//從字符串str頭開(kāi)始查找字符ch首次出現(xiàn)的位置
char?*strrchr(const?char*?str,int?ch);//從字符串str尾開(kāi)始查找字符ch首次出現(xiàn)的位置
int?strcmp(const?char?*,?const?char?*);//基于字典順序比較兩個(gè)字符串
int?strncmp(const?char?*,?const?char?*,?size_t);//基于字典順序比較兩個(gè)字符串,最多比較n個(gè)字節(jié)
int?strcoll(const?char?*,?const?char?*);//基于當(dāng)前區(qū)域設(shè)置的字符順序比較兩個(gè)字符串
char?*strcpy(char*?str1,?const?char*?str2);//將str2拷貝給str1
char?*strncpy(char*?str1,?const?char*?str2,?size_t?n);//截取str2的n個(gè)字符拷貝給str1
char?*strerror(int);//返回錯(cuò)誤碼對(duì)應(yīng)的解釋字符串,參見(jiàn)errno.h(非線程安全函數(shù))
size_t?strlen(const?char?*);//返回一個(gè)字符串的長(zhǎng)度
size_t?strspn(const?char?*s,?const?char?*strCharSet);//從字符串s的起始處開(kāi)始,尋找第一個(gè)不出現(xiàn)在strCharSet中的字符,返回其位置索引值。換句話說(shuō),返回從字符串s的起始位置的完全由strCharSet中的字符構(gòu)成的子串的最大長(zhǎng)度。strspn為string?span的縮寫。不支持多字節(jié)字符集。
size_t?strcspn(const?char?*s,?const?char?*strCharSet);//從字符串s的起始處開(kāi)始,尋找第一個(gè)出現(xiàn)在strCharSet中的字符,返回其位置索引值。換句話說(shuō),返回從字符串s的起始位置的完全由不屬于strCharSet中的字符構(gòu)成的子串的最大長(zhǎng)度。strcspn為string?complement?span的縮寫。不支持多字節(jié)字符集。
char?*strpbrk(const?char?*s,?const?char?*strCharSet);//在字符串s中查找strCharSet中任意字符第一次出現(xiàn)的位置的指針值。strpbrk為string?pointer?break縮寫。不支持多字節(jié)字符集。
char?*strstr(const?char?*haystack,?const?char?*needle);//在字符串haystack中查找字符串needle第一次出現(xiàn)的位置,heystack的長(zhǎng)度必須長(zhǎng)于needle
char?*strtok(char?*strToken,?const?char?*strDelimit?);//將一個(gè)字符串strToken依據(jù)分界符(delimiter)分隔成一系列字符串。此函數(shù)非線程安全,且不可重入;但MSVC實(shí)現(xiàn)時(shí)使用了thread-local?static?variable因而是線程安全的單仍然是不可重入,即在單線程中不能對(duì)兩個(gè)源字符串交替調(diào)用該函數(shù)來(lái)分析token,應(yīng)當(dāng)對(duì)一個(gè)字符串分析完成后再處理別的字符串。
size_t?strxfrm(char?*dest,?const?char?*src,?size_t?n);//根據(jù)當(dāng)前l(fā)ocale轉(zhuǎn)換一個(gè)字符串為strcmp使用的內(nèi)部格式
char
s1[256]="abcdefg";
char
s2[256]="123456";
strupr(s1)
//變大寫s1就是
ABCDEFG
strlwr(s1)
//變小寫s1就是
abcdefg
strlen(s1)
//求長(zhǎng)度
返回6
strcpy(s1,s2)
//拷貝后s1="123456"
strcat(s1,s2) //連接s1="abcdefg123456"
strcmp(s1,s2) // 比大小
s1大就返回1
s1小就返回-1
一樣大就返回0
strcpy(string
,string
)---把后1個(gè)復(fù)制后放入前一個(gè)字符串,空間要夠
strcat(string
,string
)
---把后1個(gè)剪切后放入前一個(gè)字符串,空間要夠
strcmp(string
,string
)---比較2個(gè)字符串,0為相同,0前1個(gè)大,0后1個(gè)大
strlen(string
)---字符串長(zhǎng)度