c和c++中字符串的截取

C字符串和C++字符串 

    在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";
其他優點                   更快                            更易於使用,優選方案
可以賦一個比現有字符更  不能    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章