1. 程式人生 > >C語言char單字元、字串、字元陣列(二)

C語言char單字元、字串、字元陣列(二)

//概論:C沒有為字串定義專門的變數型別,而是轉它儲存到char陣列中
    
    //建立單個字元
    char a = 'A';
    a = 65;
    a = '\b';
    
    //TODO:建立字元字元&字元陣列
    //方式1 字元陣列
    char name[] = {'j','a','s','o','n'};
    char ch[] = {'a','b','c','d'};
    char myFirstC[] = {'a','d','c','b'};
    //字元記憶體位元組大小
    int d = sizeof(name);
    int dd = sizeof name;
    
    //方式2
    //字元陣列
    char myT[] = {"hello"};
    char myS[] = "hello"; //省略花括號
    int md = sizeof(myT);

    //_______備註:方式1 和 方式2 的輸出結果是一樣的,兩種方法都是將一個或多個記憶體為一位元組的字元初始化為陣列;
    //當陣列元素個數少於實際長度,出現值異常,如果大於實際長度則補 結束符 '\0'
    
    
    //方式3
    //字串陣列指標&單個字元,元素個數大於實際長度則超出的元素為 NULL
    char *ch3 = "worlddddddddddddddddddddddddddddd88888888888888888888888888888888888888888888888888"; //單個字串
    char *ch33 = "world2"; //單個字串

    char *ch4[4] = {"welcome", "," ,"doudou745","doudou745","doudou745","doudou745"};//字元指標陣列
    char *ch5[] = {"welcome"};;
    int cd = sizeof(ch4);  // 32 字元陣列指標在當前系統佔用32個位元組記憶體空間
    int cdd = sizeof(ch3); // 8 字元指標在當前系統佔用8個位元組記憶體空間
    int cddd = sizeof(ch33); // 8 字元指標在當前系統佔用8個位元組記憶體空間

    
    
    //字元陣列取陣列下標元素值
    char *aaa = ch4[0];
    printf("%s %s",ch3,ch4[2]);

    
    
    //strlen 字串長度,忽略結束符 '\0'
    size_t aa = strlen(name);
    

    //轉十六進位制
    printf("%x %X %#x\n",31,31,31);

    
    
    //限制字串輸出
    const char *cc = "A good girl tell me that.....I V U";
    printf("%.11s\n%35s\n%36s\n%37s\n%-37s",cc,cc,cc,cc,cc);
    /*
     A good girl
      A good girl tell me that.....I V U
       A good girl tell me that.....I V U
        A good girl tell me that.....I V U
     A good girl tell me that.....I V U   (lldb)
     */

//無參初始化

char empty[10];

        empty[0] = 'd';

empty[1] = 'e';

gets(empty);