c語言中的字串

2021-07-06 02:28:07 字數 1701 閱讀 3580

一、c語言中的字串

c語言中沒有字串型別

字串實際就是多個字元連在一起,所有可以用字元陣列來存放字串。

但是使用字元陣列輸出時需要使用for迴圈

例如:

這樣使用十分不方便,有沒有一種簡約的方式,讓我們一下子就能輸出呢?

有但是需要改兩個地方!

1.長度要+1

2.末尾要加乙個'\0'

然後用 %s(格式化控制符)就可以輸出了!

%s輸出:字串的

例如:

比使用for迴圈簡單多了。

簡單來說:

字串:把多個字元連在一起就叫字串。但是在c語言中要正確正確描述字串,必須說成:一串以'\0'結尾的字元集合

例:char str[3] = ;

只能稱之為字元陣列,因為無法用%s正確輸出

char str[4] = ;

才能稱之為字串,可以用%s正確輸出

字串定義和賦值的方法

a、用陣列表示

第一種:用多個字元賦值

char 陣列名[實際長度+1] = ; 

如:char str[4] = ;

第二種:

char str = ;//省略長度

如:char str = ;

第三種:

char  陣列名[實際長度+1] = "字串";

例:  char str[4] = "abc";

注意:這種方式不需要加\0,編譯器自動幫我們加

第四種:

char  陣列名 =  "字串";//省略長度

例: char str = "abc";

注意:這種方式不需要加\0,編譯器自動幫我們加

b、用指標表示

char *指標變數名 = 字串常量;

例:  char *str = "abc";

注意:陣列表示法和指標表示法的區別:

1.陣列表示法可以改變裡面的值,指標表示法不可以 

指標表示法指向的是字串常量,常量不可改變。

2.陣列表示法可以接收使用者輸入的值,指標表示法不可以

同理:指標表示法指向的是字串常量,常量不可改變。

3.陣列表示法不能用==來判斷乙個字串另外乙個字串常量是否相等

( 例:char str="abc"; if(str == "abc"))

指標表示法可以用==來判斷乙個字串和另外乙個字串常量是否相等strcmp

(例:char *str = "abc";  if(str=="abc"))

比較字串一般使用字串比較函式strcmp

C語言中的字串

從概念上講,c語言中沒有字串型別 在c語言中使用字元陣列來模擬字串 c語言中的字串是以 0 結束的字元陣列 c語言中的字串可以分配於棧空間,堆空間或者唯讀儲存區 char s1 沒有 0 所以s1只不過是個單純的字元陣列 char s2 也是乙個字元陣列,但是最後乙個元素是 0 因此s2就成了c語言...

C語言中的字串

1.標準函式gets與puts分別用於字串的整體輸入和輸出,且gets接收字串時,字串中可包含空格。使用格式為 gets 字元陣列 或者puts 字元陣列 由標頭檔案stdio.h支援 2.常用字串處理函式 由標頭檔案string.h strlen 測試字串長度的函式,函式返回值為字串的實際長度 s...

C語言中的字串

c語言中沒有字串這種型別,只能通過字元陣列來模擬字串 c風格的字串是以零結尾的字串 char str1 100 指定了長度,那麼剩下的部分補充為0 不指定長度 char str2 char str3 通過字串初始化字元陣列 並且追加 0 char str4 abcd char str5 4 abcd...