C/C++學習筆記:字串

Fang_cheng_發表於2020-12-16

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

相關文章