tft每日頭條

 > 科技

 > c語言字符數組string

c語言字符數組string

科技 更新时间:2024-10-16 05:57:54

每種編程語言,除了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

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved