strcpy(string
為枝江等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及枝江網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、成都網(wǎng)站建設(shè)、枝江網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
,string
)---把后1個復(fù)制后放入前一個字符串,空間要夠
strcat(string
,string
)
---把后1個剪切后放入前一個字符串,空間要夠
strcmp(string
,string
)---比較2個字符串,0為相同,0前1個大,0后1個大
strlen(string
)---字符串長度
字符串的讀入以回車作為結(jié)束標(biāo)志。但是,回車也被系統(tǒng)讀入了。
也就是說,當(dāng)輸入字符串"aaa”并以回車結(jié)束后,此時字符型數(shù)組filename="aaa\0",還有一個回車在內(nèi)存里。
當(dāng)遇到下一個讀入函數(shù)時,系統(tǒng)會把回車字符賦給字符型變量,也就是ch='\n'
因此,第一行ch=getchar();是用來消回車的。也可寫作getchar();
如果刪掉第一行ch=getchar();,此時ch='\n'。執(zhí)行 putchar(ch);時相當(dāng)于打出一個回車。
所以第一行沒東西。
忘記消回車是讀入字符串時常犯的錯誤。樓主要注意啊。
最后,如果使用fputc和putchar是括號內(nèi)沒有加引號則表示引用變量而非字符。
*S1就是判斷是否到了字符串未尾,因為字符串的結(jié)束的地方為0
比如 一個字符串是"1234",實際在內(nèi)存中為 0x31,0x32,0x33,0x34,0x00,會自動加0x00的。
strlen(S2)函數(shù)返回字符串S2的長度
getchar()函數(shù)是C語言專門為輸入單個字符而提供的,getchar()函數(shù)是從I/O字符流中讀取一個字符,必須輸入換行才能讀入字符。
例如:
#includestdio.h
int main(void)
{
char ch;
int i;
for(i=0;i5;i++)
{
ch=getchar();????//帶回顯,且等待按Enter鍵換行
printf("%c",ch);
}
return 0;
}
擴(kuò)展資料:
getchar()、getche()、getch()相比較
getchar()函數(shù)是C語言專門為輸入單個字符而提供的,getchar()函數(shù)是從I/O字符流中讀取一個字符,必須輸入換行才能讀入字符。
getche()、getch()函數(shù)也是讀入單個字符,是從控制臺直接讀取一個字符,無須換行即可讀入字符。
getchar()是C的標(biāo)準(zhǔn)庫函數(shù),包含在頭文件stdio.h中。
而getche()和getch()需要的頭文件是conio.h。conio.h不是C標(biāo)準(zhǔn)庫中的頭文件。conio是ConsoleInput/Output(控制臺輸入輸出)的簡寫,其中定義了通過控制臺進(jìn)行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù),主要是一些用戶通過按鍵盤產(chǎn)生的對應(yīng)操作。
getchar()函數(shù)從鍵盤讀入字符時,輸入的字符帶回顯,并且必須等到輸入換行(按Enter鍵)才能讀取一個字符。
getche()函數(shù)從鍵盤讀入字符時,輸入的字符會回顯到顯示屏上,但是無須輸入換行即可讀取一個字符。
getch()函數(shù)從鍵盤讀入字符時,輸入的字符不回顯到顯示屏上,但是無須輸入換行即可讀取一個字符。
參考資料來源:百度百科-C語言函數(shù)
參考資料來源:百度百科-C語言
puts、gets分別表示輸出、輸入一個字符
strcat表示連接兩個字符串
strcpy用于復(fù)制字符串
strcmp用于比較兩個字符串的大?。ò醋值漤樞颍?/p>
具體的例子樓主可以去
百度百科
一下,這些基本的
C函數(shù)
應(yīng)該都有詳細(xì)解釋的,我就不啰嗦了。
string.h頭文件中包含的字符串函數(shù)
void?*memcpy(void?*dest,?const?void?*src,?size_t?n);//將n字節(jié)長的內(nèi)容從一個內(nèi)存地址復(fù)制到另一個地址;如果兩個地址存在重疊,則最終行為未定義
void?*memmove(void?*dest,?const?void?*src,?size_t?n);//將n字節(jié)長的內(nèi)容從一個內(nèi)存地址復(fù)制到另一個地址;與memcpy不同的是它可以正確作用于兩個存在重疊的地址
void?*memchr(const?void?*s,?char?c,?size_t?n);//在從s開始的n個字節(jié)內(nèi)查找c第一次出現(xiàn)的地址并返回,若未找到則返回NULL
int?memcmp(const?void?*s1,?const?void?*s2,?size_t?n);//對從兩個內(nèi)存地址開始的n個字符進(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個字符連接在字符串dest之后,返回dest字符串
char?*strchr(const?char*?str,?int?ch);//從字符串str頭開始查找字符ch首次出現(xiàn)的位置
char?*strrchr(const?char*?str,int?ch);//從字符串str尾開始查找字符ch首次出現(xiàn)的位置
int?strcmp(const?char?*,?const?char?*);//基于字典順序比較兩個字符串
int?strncmp(const?char?*,?const?char?*,?size_t);//基于字典順序比較兩個字符串,最多比較n個字節(jié)
int?strcoll(const?char?*,?const?char?*);//基于當(dāng)前區(qū)域設(shè)置的字符順序比較兩個字符串
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);//返回錯誤碼對應(yīng)的解釋字符串,參見errno.h(非線程安全函數(shù))
size_t?strlen(const?char?*);//返回一個字符串的長度
size_t?strspn(const?char?*s,?const?char?*strCharSet);//從字符串s的起始處開始,尋找第一個不出現(xiàn)在strCharSet中的字符,返回其位置索引值。換句話說,返回從字符串s的起始位置的完全由strCharSet中的字符構(gòu)成的子串的最大長度。strspn為string?span的縮寫。不支持多字節(jié)字符集。
size_t?strcspn(const?char?*s,?const?char?*strCharSet);//從字符串s的起始處開始,尋找第一個出現(xiàn)在strCharSet中的字符,返回其位置索引值。換句話說,返回從字符串s的起始位置的完全由不屬于strCharSet中的字符構(gòu)成的子串的最大長度。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的長度必須長于needle
char?*strtok(char?*strToken,?const?char?*strDelimit?);//將一個字符串strToken依據(jù)分界符(delimiter)分隔成一系列字符串。此函數(shù)非線程安全,且不可重入;但MSVC實現(xiàn)時使用了thread-local?static?variable因而是線程安全的單仍然是不可重入,即在單線程中不能對兩個源字符串交替調(diào)用該函數(shù)來分析token,應(yīng)當(dāng)對一個字符串分析完成后再處理別的字符串。
size_t?strxfrm(char?*dest,?const?char?*src,?size_t?n);//根據(jù)當(dāng)前l(fā)ocale轉(zhuǎn)換一個字符串為strcmp使用的內(nèi)部格式