C字符串和C++字符串
在C中,并沒有字符串這個數據類型,而是使用字符數組來保存字符串的。
C字符串實際上就是一個以null('\0')字符結尾的字符數組,null字符表示字符串的結束。需要注意的是:只有以null字符結尾的字符數組才是C字符串,否則只是一般的C字符數組。
C字符串定義時可以利用等號(“=”)進行初始化,但是以后不能再利用等號(“=”)對C字符串進行賦值。對C字符串的操作需要通過“string.h”頭文件中字義的字符串處理函數。例如:
//字符串的初始化
char str[11] = "helloworld";
//字符串的賦值
strcpy(str, "hello c");
//獲取字符串的長度(不包括'\0'在內)
strlen(str);
//顯示字符串
printf("%s", str);
在C中也可以使用字符指針來訪問一個字符串,通過字符指針指向存放字符數組的首元素地址來進行訪問。
char* str = "helloworld";
print("%s", str);
在C++中則把字符串封裝成了一種數據類型string,可以直接聲明變量并進行賦值等字符串操作。以下是C字符串和C++中string的區別:
C字符串實際上就是一個以null('\0')字符結尾的字符數組,null字符表示字符串的結束。需要注意的是:只有以null字符結尾的字符數組才是C字符串,否則只是一般的C字符數組。
C字符串定義時可以利用等號(“=”)進行初始化,但是以后不能再利用等號(“=”)對C字符串進行賦值。對C字符串的操作需要通過“string.h”頭文件中字義的字符串處理函數。例如:
//字符串的初始化
char str[11] = "helloworld";
//字符串的賦值
strcpy(str, "hello c");
//獲取字符串的長度(不包括'\0'在內)
strlen(str);
//顯示字符串
printf("%s", str);
在C中也可以使用字符指針來訪問一個字符串,通過字符指針指向存放字符數組的首元素地址來進行訪問。
char* str = "helloworld";
print("%s", str);
在C++中則把字符串封裝成了一種數據類型string,可以直接聲明變量并進行賦值等字符串操作。以下是C字符串和C++中string的區別:
C字符串 | string對象 | |
所需的頭文件名稱 | string/string.h | string/string.h |
為什么需要頭文件 | 為了使用字符串函數 | 為了使用string類 |
如何聲明 | char name[20]; | string name; |
如何初始化 | char name[20] = "zhangsan"; | string name = "zhangsan"; |
必須聲明字符串長度嗎? | 是 | 否 |
需要使用一個null字符作結尾符號嗎? | 是 | 否 |
怎樣實現字符串賦值? | strcpy(name, "lisi"); | name = "lisi"; |
其他優點 | 更快 | 更易于使用,優選方案 |
可以賦一個比現有字符串更長的字符串嗎? | 不能 | 可以 |
posted on 2009-02-10 15:41 luqingfei 閱讀(709) 評論(0) 編輯 收藏 引用 所屬分類: C++基礎