在 C 語(yǔ)言中坷檩,字符串實(shí)際上是使用null字符 '\0' 終止的一維字符數(shù)組却音。因此,一個(gè)以 null 結(jié)尾的字符串矢炼,包含了組成字符串的字符系瓢。
下面的聲明和初始化創(chuàng)建了一個(gè) ''Hello'' 字符串。由于在數(shù)組的末尾存儲(chǔ)了空字符句灌,所以字符數(shù)組的大小比單詞 ''Hello'' 的字符數(shù)多一個(gè)夷陋。
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
依據(jù)數(shù)組初始化規(guī)則,您可以把上面的語(yǔ)句寫成以下語(yǔ)句:
char greeting[] = ''Hello'';
以下是 C/C ? 中定義的字符串的內(nèi)存表示:
如果想要現(xiàn)在學(xué)習(xí)的胰锌,小編推薦一個(gè)學(xué)C語(yǔ)言/C++的學(xué)習(xí)裙【 六二六骗绕,八七一,九一六 ?】邀請(qǐng)碼凌云资昧,無(wú)論你是大牛還是小白酬土,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具格带,很多干貨和技術(shù)資料分享撤缴!
一、字符串輸入
1. 輸入單個(gè)字符串
可以使用scanf函數(shù)叽唱,以空格為分割輸入字符串屈呕,代碼如下:
2. 輸入整行字符串
可以使用gets函數(shù),以 '\n' 為分割輸入整行字符串尔觉,代碼如下:小編推薦一個(gè)學(xué)C語(yǔ)言/C ?的學(xué)習(xí)裙【 六二七凉袱,零一二,四六四 】侦铜,無(wú)論你是大牛還是小白专甩,是想轉(zhuǎn)行還是想入行都可以來(lái)了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具钉稍,很多干貨和技術(shù)資料分享涤躲!
二、字符串處理
1. 字符串拷貝
可以使用strcpy函數(shù)贡未,代碼如下:
注意:1. str1 會(huì)覆蓋 str2 內(nèi)容种樱;2. 定義數(shù)組是蒙袍,str2 長(zhǎng)度要大于或等于 str1。
也可以使用strncpy函數(shù)嫩挤,代碼如下:
注意:str2 的前 n 個(gè)字符會(huì)被 str1 的前 n 個(gè)字符覆蓋害幅。
2. 字符串連接
可以使用 strcat 函數(shù),代碼如下:
注意:要注意 str2 的長(zhǎng)度為 str1 與原 str2 長(zhǎng)度之和岂昭,str2 最后的 '\0' 字符會(huì)自動(dòng)消失以现。
也可以使用strncat函數(shù),將字符串的前 n 個(gè)字符連接到另一個(gè)字符后面约啊,代碼如下:
3. ?字符串比較
可以使用strcmp函數(shù)邑遏,代碼如下:
4. 字符串長(zhǎng)度
可以使用 strlen 函數(shù),代碼如下:
幾點(diǎn)學(xué)習(xí)建議:
1.基本概念很重要恰矩。無(wú)論學(xué)C记盒,還是學(xué)C ?,基本概念都是第一位的外傅,也是比較困難的纪吮,但只有把握了基本概念才能把握整體脈絡(luò),才能居高臨下栏豺。
2.C是C ?的子集彬碱,它的基本概念和設(shè)計(jì)方法相對(duì)比較容易理解,初學(xué)者可從它入手奥洼。
3.如果要學(xué)好C ?巷疼,建議初學(xué)者最好別在如VC,BCB平臺(tái)下寫程序灵奖,那種自動(dòng)化的代碼生成嚼沿,花花綠綠的界面,會(huì)讓你手足無(wú)措瓷患。最好先找一片空地(unix骡尽,dos),從頭做起擅编,寫幾個(gè)大點(diǎn)的程序攀细,數(shù)個(gè)回合,再到VC爱态,BCB下看看谭贪,你會(huì)輕松得很。在我看來(lái)锦担,學(xué)好C/C ?是成為VC俭识,BCB高手的必由之路。
4.不要妄想速成洞渔,必須得一個(gè)byte套媚,一個(gè)bit的去摳缚态,盡量搞清楚每一個(gè)問題。