luqingfei@C++

为中华之崛起而崛起!
兼听则明,偏听则暗。

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字符串 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 阅读(691) 评论(0)  编辑 收藏 引用 所属分类: C++基础


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

统计

留言簿(6)

随笔分类(109)

随笔档案(105)

Blogers

Game

Life

NodeJs

Python

Useful Webs

大牛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜