區別
1:C語言中沒有用於表示字符串的關鍵字以數組形式將字符串輸出,字符串由C的字符數組變形而成,末尾加上'\0',字符串比字符數組多一個'\0'.
2:通常,在程序中使用字符串常量會生成一個“指向字符的常量指針”,當字符串常量出現在表達式中時,表達式所使用的值就這些字符所儲存的地址。
3:字符串常量:字符串常量不能被修改,因為是共同的,指針類型的字符串常量只占四個字節;字符數組:如果想將一個字符串存放到變量中,必須使用字符數組,就是用一個字符型數組存放一個字符串。
4:C語言中,字符串是雙引號括起來的單個或多個字符的集合,編譯器自動在結尾加上'\0'字符。字符串常量儲存在只讀數據段,無法通過指針進行修改字符串中的某個字符。
5:C語言中,不能定義字符串,但是可以使用,通常會用字符數組來模擬字符串,必須是以'\0'結尾,那該字符數組就是普通的字符數組,不是字符串。
6:字符串常量本質上是一個無名的字符數組。
用法
1:定義字符數組
char s[100];
在字符數組中一個元素存放一個字符。
2:輸入字符數組
i=0; while((a[i]=getchar())!='\n'){
i++;}
或
getchar();
char ch;
while(ch=getchar()!='\0'){
}
等等
這樣輸入直到遇到回車就結束輸入。
3:調用時,如一般數組一樣,一般用循環語句遍歷,也不可直接賦值。
————————————————————————————————————————————————————————————————————————
1:定義字符串:
char s[]="happy"
或
char s[6]="happy"
因為定義字符串時,編譯器會幫你數有幾個元素,我們自己設定大小也可,但是要注意末尾的'\0',也占了位置。
2:輸入字符串
鍵盤輸入法 gets(s); ______可輸入空格;
scanf("%s",s); 輸到空格便停止輸入
3:調用
跟字符數組相似,有一個結尾字符\0;
#include<stdio.h> #include<string.h> int main(){ char* s="tangtao"; char s2[10]={'t','a','n','g','t','a','o'} for(int i=0;i<10;i++) printf("s2[i]=%c\n",s2[i]); printf("sizeof(s)=%ld\n",sizeof(s)); printf("strlen(s)=%ld\n",strlen(s)); printf("sizeof(s2)=%ld\n",sizeof(s2)); return 0; }

