關於字串(1)

2021-07-06 02:29:12 字數 1762 閱讀 8330

字元陣列與普通陣列一樣,都是陣列,只不過儲存的是字元,而且c和c++都為它提供了很多函式。

(1)  字元陣列可以逐個賦值,類似於 char c[10];      c[0]='i'   c[1]='m' 一直像後面賦值,就是將10 個元素分別賦值給c[0]~c[9],

也可以用c[10]=;的方法賦值。

注:如果是剛接觸c++的請注意單引號與雙引號的區別。

比如a和b都是相同長度和型別的字元陣列,我們用 「   a=b   」將b賦值給a是錯誤的。但是 a[0]=b[0]是正確的。

在我們之前了解到了字元陣列中,比如用乙個一維陣列 char str[12]=;我們可以看到,空格和字母算起來一共是10個字元。但是我們建立的是乙個長度為12的字元陣列,那麼最後兩個位置系統會怎麼辦呢? 那就是用『\0』自動填補空字元。

我們的小標題是字串的結束標誌,那麼可以猜到『\0』就是我們的字串結束標誌了。也就是遇到『\0』就代表字串到此結束,由它前面的字元組成有效字串。我們往往可以不需要知道字串的長度而依靠『\0』來判斷字串是否結束了。

注:『\0』代表ascii碼為0的字元,是乙個不能夠顯示的字元。

(1)對於字元陣列,我們可以用for迴圈逐個輸入和輸出。

(2)整個字串輸入輸出:

char str[20] ;

cin>>str;

cout<

注:在執行cout時,str代表第乙個元素也就是str[0]的位址,執行「cout<

標頭檔案為string 和string.h.

(1).字串連線函式 strcat(char[ ],const char[ ])

char str1[30]="people's pepublic of ";

char str2[  ]="china";

cout<

輸出:people's republic of china

(2).字串複製函式strcpy(char[ ],const char[ ])

strcpy將第二個字元陣列中的字元複製到第乙個字元陣列中,並將第乙個覆蓋。

char str1[10],str2[ ]="china";

strcpy(str1,str2);

注:在函式中第乙個引數是陣列名,第二個可以是字串常量,如:

strcpy(str1,"hello");

也可以用strcpy(str1,str2,num);          num 代表數字,是將str2的前num個字元複製到str1中去,再在後面加乙個『\0』.

之前有提到不能用str1=str2直接賦值,現在就能用這個函式賦值了。

(3).字串比較函式strcmp(const char[ ],const char[ ])

下面的寫法都是合法的:

strcmp(str1,str2);

strcmp("china","korea");

strcmp(str1,"beijing");

因為只參加比較而不改變內容,所以都加const宣告。

比較規則為兩個字串從左到右依次比較(按ascii碼比較大小),直到遇見不同的字元,就以這個字元比較的結果為準,如果沒有不同的字元,則返回0.如果str1大於str2,則返回正整數,如果小於返回負整數。(與賦值類似,不可以用str1>str2這種表達方法,因為這代表兩個位址而你想比較的是內容。)

(4).字串長度函式strlen(const char [ ]);

這個函式測試字串的實際長度,不包括'\0'在內。

cout<

輸出的結果為5(實際長度)。

關於字串

一些基本概念 用字元陣列儲存這麼乙個字串 char str hello world 然後我們應該知道,1.陣列的大小是12 字串字元個數 1 最後乙個元素為 0 用於標記字串的結束。0 不是數字0,它是非列印字元,其ascii碼值為0 2.若使用如下定義 char str 100 hello wor...

關於字串

關於string最重要的幾點 string為引用型別體現於其在棧記憶體和堆記憶體中的結構 堆記憶體中有字串常量池。有幾種new字串的方式 string str ass 方式1 string str1 new string ass 方式2char cha string str2 new string ...

關於MYSQL字串

字串是多個字元組成的乙個字串行,由單引號 或雙引號 字元包圍。但在 ansi 模式中執行時只能用單引號 例如 a string another string 在乙個字串中,如果某個序列具有特殊的含義,每個序列以反斜線符號 開頭,稱為轉義字元。mysql 識別下列轉義字元 0 乙個 ascii 0 n...