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";
其他优点                   更快                            更易于使用,优选方案
可以赋一个比现有字符更  不能    

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