c語言中沒有字符串類型
字符串實際就是多個字符連在一起,所有可以用字符數組來存放字符串。
但是使用字符數組輸出時需要使用for循環
例如:
這樣使用十分不方便,有沒有一種簡約的方式,讓我們一下子就能輸出呢?
有但是需要改兩個地方!
1.長度要+1
2.末尾要加一個'\0'
然後用 %s(格式化控制符)就可以輸出了!
%s輸出:字符串的
例如:
比使用for循環簡單多了。
簡單來說:
字符串:把多個字符連在一起就叫字符串。但是在C語言中要正確正確描述字符串,必須說成:一串以'\0'結尾的字符集合
例:
char str[3] = {'a','b','c'};
只能稱之爲字符數組,因爲無法用%s正確輸出
char str[4] = {'a','b','c','\0'};
才能稱之爲字符串,可以用%s正確輸出
字符串定義和賦值的方法
a、用數組表示
第一種:用多個字符賦值
char 數組名[實際長度+1] = { 'a','b','c','\0' };
如:char str[4] = {'a','b','c','\0'};
第二種:
char str[] = {'a','b','c','\0'};//省略長度
如:char str[] = {'a','b','c','\0'};
第三種:
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