C/C++學習筆記:字串
C語言字串
☆字串的定義、賦值、輸出
由於C語言中沒有字串string型別,所以使用字元陣列來存放字串。
char str1[] = "I am a student."; //可輸入也可輸出
char *str2 = "I am a student."; //只能輸出
printf("%s\n%s\n",str1,str2);
str1 和 str2 是字串的名字,後邊的[ ]
和前邊的*
是固定的寫法。
這裡需要留意一個坑,字元陣列只有在定義時才能將整個字串一次性地賦值給它,一旦定義完了,就只能一個字元一個字元地賦值了。請看下面的例子:
char str[7];
str = "abc123"; //錯誤
//正確
str[0] = 'a'; str[1] = 'b'; str[2] = 'c';
str[3] = '1'; str[4] = '2'; str[5] = '3';
拼接倆字串
strcat 是 string catenate 的縮寫,意思是把兩個字串拼接在一起,語法格式為:
strcat(arrayName1, arrayName2);
arrayName1、arrayName2 為需要拼接的字串。
複製字串
strcpy 是 string copy 的縮寫,意思是字串複製,也即將字串從一個地方複製到另外一個地方,語法格式為:
strcpy(arrayName1, arrayName2);
strcpy() 會把 arrayName2 中的字串拷貝到 arrayName1 中,字串結束標誌'\0'
也一同拷貝。
字串比較
strcmp 是 string compare 的縮寫,意思是字串比較,語法格式為:
strcmp(arrayName1, arrayName2);
arrayName1 和 arrayName2 是需要比較的兩個字串。
字元本身沒有大小之分,strcmp() 以各個字元對應的 ASCII 碼值進行比較。strcmp() 從兩個字串的第 0 個字元開始比較,如果它們相等,就繼續比較下一個字元,直到遇見不同的字元,或者到字串的末尾。
返回值:若 arrayName1 和 arrayName2 相同,則返回0;若 arrayName1 大於 arrayName2,則返回大於 0 的值;若 arrayName1 小於 arrayName2,則返回小於0 的值。
C++字串類
字串變數
#include <iostream>
#include <string>
using namespace std;
int main ()
{
string str1 = "Hello "; //字串類,賦值
string str2 = "World!!!"; //字串類
string str3;
int len;
// 複製 str1 到 str3,長度可以不同
str3 = str1;
cout << "str3 : " << str3 << endl;
// 連線 str1 和 str2
str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// 連線後,str3 的總長度
len = str3.size();
cout << "str3.size() : " << len << endl;
return 0;
}
輸出
str3 : Hello
str1 + str2 : Hello World!!!
str3.size() : 14
字串陣列
getline(cin,str) 可以輸入帶空格的string
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str[3];
cout<<"please input the str"<<endl;
for(int i=0;i<3;i++){
getline(cin,str[i]);
int n=str[i].length(); // 輸出字串長度
cout<<"str[" << i << "] length:"<<n<<endl;
}
return 0;
}
輸出結果
please input the str
China is strong!
str[0] length:16
USA is weak!
str[1] length:12
I am Chinese!
str[2] length:12
相關文章
- C++學習筆記-Cherno C++系列C++筆記
- C++學習筆記——C++ 繼承C++筆記繼承
- C/C++學習路線———學習筆記C++筆記
- OI學習筆記(C++)筆記C++
- c++學習筆記(四)C++筆記
- c++學習筆記(五)C++筆記
- c++學習筆記(三)C++筆記
- C++學習筆記——003C++筆記
- C++學習筆記——001C++筆記
- C++讀書筆記:字串C++筆記字串
- C++學習筆記(二)——函式C++筆記函式
- c++學習筆記 — inline這玩意C++筆記inline
- C++複習筆記C++筆記
- 字串學習筆記字串筆記
- C++學習筆記----讀寫檔案C++筆記
- C++ 學習筆記之——STL 庫 queueC++筆記
- C++學習筆記-C++對C語言的函式擴充C++筆記C語言函式
- 《C++ Primer》學習筆記(六):C++模組設計——函式C++筆記函式
- C++ 學習筆記(3):引用和指標C++筆記指標
- C++ 學習筆記(2):String、遞迴、排序C++筆記遞迴排序
- C++ 學習筆記(1):STL、Vector 與 SetC++筆記
- C++基礎知識學習筆記(3)C++筆記
- C++基礎知識學習筆記(1)C++筆記
- MoveIt! 學習筆記1- MoveGroup C++ Interface筆記C++
- C++學習筆記(二) 運算子過載C++筆記
- C++學習筆記 — STL標準模板庫C++筆記
- C++遠征離港篇-學習筆記C++筆記
- 字串家族 學習筆記字串筆記
- 【學習筆記】字串匹配筆記字串匹配
- c++學習記錄C++
- C++類初學筆記C++筆記
- C#學習筆記(與Java、C、C++和Python對比)C#筆記JavaC++Python
- C++學習筆記-----類和建構函式C++筆記函式
- 《C++ Primer》學習筆記(八):標準 IO 庫C++筆記
- C++ primer Plus學習筆記(第二章)C++筆記
- C++學習筆記-五大基本概念C++筆記
- C++ 學習筆記之——輸入和輸出C++筆記
- KMP字串匹配學習筆記KMP字串匹配筆記