首页
/
每日頭條
/
科技
/
c語言字符數組string
c語言字符數組string
更新时间:2025-07-09 23:22:37

每種編程語言,除了int,float,long這些最基本的數據類型外,字符與字符串也必須是“必備全家桶”裡面的一員。

C 的字符串,對比許多後起之秀,當然說不上十分方便使用(也許會覺得難用),但其靈活性絕對是杠杠的。

字符串,本質上說其實就是“一串字符”,也就是字符數組。

字符串的初始化

char charr1[10] = "android"; // char charr2[20] = {"hello"}; // C 11 char charr2[20] {"jaguar"}; // C 11 string str1 = "morgan"; // std::string string str2 = {"morgan"}; string str3 {"morgan"};// C 11

我們可以通過兩種方式來聲明字符串類型,一種是char數組,一種是std标準庫中的string類。

其實上面的char數組,等價于下面的形式:

char charr1[10] = {'a','n','d','r','o','i','d','\0','\0','\0'};

因為數組本質上其實也是指針,因此在C 中,在char數組用'\0'元素表示字符串的結束。

char數組必須要指定長度,相比較而言,string就不需要那麼麻煩。

字符串的相關操作

1.獲取字符串長度

int len1 = strlen(charr1);// 使用庫函數 strlen() int len_str1 = str1.size();//調用string對象的成員函數size();

  1. 字符串連接

char* newChars = strcat(charr1, charr2);// 結果是 "androidhello" string newStr = str1 str2;

  1. 字符串拷貝

strcpy(charr3, charr1);// dst, src: copy from charr1 to charr3; string str4 = str1; // copy str1 to str4;

  1. 字符串的IO操作

通常我們都有從命令行輸入字符串的訴求,來看看char數組、string對象分别是怎麼實現的?

char name[20]; //cin >> name; 這種方法會有陷阱,後面展開說明 cin.getline(name, 20); string sName; getline(cin, sName); cin >> sName;

  1. 查找子字符串:find

函數原型: size_type find(const string& str, size_type pos=0) const

使用string替代char數組

char數組其實有不少缺點,C 建議使用string替代char數組,主要原因有以下幾點:

  • char數組聲明時必須指定長度,如果字符串太短則會浪費空間,太長則無法容納。string無此問題。
  • string更安全:char數組本質是一個指針,一些字符串操作可能會覆蓋不相幹的内存區域。

char site[10] = "house"; strcat(site, "is white in DC."); //拼接後長度大于10,将會覆蓋相鄰的内存

  • char數組依賴'\0'作為字符串的結束符。

c語言字符數組string(C基礎字符串數組與string類)1

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
株洲冠脈支架價格
株洲冠脈支架價格
株洲冠脈支架價格?智通财經APP訊,先健科技(01302)發布公告,于2021年11月5日,集團自主研發的IBS®可吸收藥物洗脫冠脈支架系統于2021年美國經導管心血管治療學術會議上由高潤霖院士公布了FIM臨床試驗兩年期随訪結果,此為全球首...
2025-07-09
科學與代碼的區别
科學與代碼的區别
今天,可以說無論科學還是技術,都已被納入到“投資管理”範疇,而不再是順其自然劉洪波湖北仙桃人。長江日報評論員,高級記者。什麼是科學,什麼是技術,認真給個答案,不是人人都可以做到,至少不是人人都可以說得讓自己滿意。但科學與技術的區别,似乎人人...
2025-07-09
我的世界optifine有什麼用
我的世界optifine有什麼用
我的世界optifine有什麼用?optiFine安裝方法正版啟動器玩家:,今天小編就來說說關于我的世界optifine有什麼用?下面更多詳細答案一起來看看吧!我的世界optifine有什麼用optiFine安裝方法正版啟動器玩家:下載對應...
2025-07-09
愛奇藝系統崩潰在什麼時候能解決
愛奇藝系統崩潰在什麼時候能解決
鞭牛士2月16日消息,今日晚間,針對用戶反映愛奇藝APP無法正常提供服務一事,愛奇藝發布微博回應稱,我們随即啟動緊急排查,目前正在全力解決導緻播放異常的技術問題。給大家造成的不便,我們深感歉意。今日晚間,愛奇藝視頻在播放期間突然中斷,系統出...
2025-07-09
3d遊戲建模入門
3d遊戲建模入門
沒有軟件的支持,3D藝術特别是建模是不可能的。也許這就是讓數字藝術,特别是3D藝術如此有趣的原因。這是計算機科學、獨創性和藝術創造力之間令人驚訝的技術飛躍。當技巧和創造力與高性能軟件和處理能力相遇時,結果就是美麗、複雜、栩栩如生的作品。3D...
2025-07-09
Copyright 2023-2025 - www.tftnews.com All Rights Reserved