字符數組和字符串的區別與用法


區別

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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM