在C中,並沒有字符串這個數據類型,而是使用字符數組來保存字符串。C字符串實際上就是一個以null('\0')字符結尾的字符數組,null字符表示字符串的結束。需要注意的是:只有以null字符結尾的字符數組纔是C字符串,否則只是一般的C字符數組。
C字符串定義時可以利用"="號進行初始化,但是以後不能利用"="對C字符串進行賦值。對C字符串的操作需要通過"string"文件中定義的字符串處理函數。例如:
//字符串的初始化
char a[11] = "huanying";
//字符串的賦值
strcpy(a,"nihao")
//獲取字符串的長度,不包括'\0'在內
strlen(a);
printf("%s",a);
在C中也可以使用字符指針來訪問一個字符串,通過字符指針指向存放字符串數組的首元素地址來進行訪問.
char *a = "nihao";
printf("%s",a);
在C++中則把字符串封裝成了一種數據類型string,可以直接聲明變量並進行賦值等字符串操作。以下是C字符串和C++中string的區別:
C字符串 string對象
所需的頭文件名稱 <string>或<string.h> <string>或<string.h>
爲什麼需要頭文件 爲了使用字符串函數 爲了使用string類
如何聲明 char name[20]; string name;
如何初始化 char name[20]="nihao"; string name = "nihao";
必須聲明字符串長度麼? 是 否
使用一個null字符麼? 是 否
怎樣實現字符串賦值 strcpy(name,"John"); name = "John";
其他優點 更快 更易於使用,優選方案
可以賦一個比現有字符更 不能