promotion image of download ymail app
Promoted
匿名
Lv 7
匿名 發問時間: 電腦與網際網路程式設計 · 1 0 年前

[C]string的array是如何設定及表達?

string的array是如何設定及表達?include <string.h>是否需要?還是有其他?之後我寫String name[];,為什麼會undeclared identifier?

4 個解答

評分
  • 鳳琳
    Lv 5
    1 0 年前
    最佳解答

    C string 是以 '\0' 為結尾的字元陣列,通常會這樣子寫

    char *str = "This is a C string";

    或是

    char str[] = "This is a C string";

    上面的例子雖然字串有 18個字元(包含空白)但實際上它要佔 19個字元的空間,C string 最後要有 '\0' , 因此如果這樣寫 char str[18] = "This is a C string";

    表面上看起來沒什麼問題, 編譯器也不會有錯誤...不過當你對這個 str 操作時通常都不是我們要的結果.

    C 的 string.h 裡面大多是一些操作字串的 function , 字串比較 ,copy,字串長度之類的.要宣告 C string 其實不用 #include <string.h> , 所以 String name[]; 編譯器會給你一個錯誤.

    不過可以這樣子寫:

    typedef char* string; // 要用 String 也行, 高興就好

    然後就可以這樣子用

    string str = "This is a C string";

    字串陣列的話

    string stra[] = { "This","is","C","string","Array" };

    //寫 char * stra[] 或 char **stra 這樣來用也可以... 只是看起來一堆 * 可能有點嚇人

    這樣 stra[0] 就是 "This" , stra[1] 是 "is" ...以此類推..

    • Commenter avatar登入以對解答發表意見
  • SiYu
    Lv 5
    1 0 年前

    c 沒有support class

    • Commenter avatar登入以對解答發表意見
  • 1 0 年前

    String 是個 class

    • Commenter avatar登入以對解答發表意見
  • 1 0 年前

    #include <string.h>string name[];  // 通常 string name; 就夠, 不用[]        // 另外,s 是小寫

    2006-11-17 21:42:31 補充:

    回應心冷:

     說的也八(誰說只能也ㄕˋ)

     被後面的內容騙了!

     標題問的是 C !

     那,我只好〝嘻〞了!

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。