社区
C++ 语言
帖子详情
请问 string类型 、字符串、字符数组、C-string 怎么区分
tanes
2004-01-11 09:58:38
请问 string类型 、字符串、字符数组、C-string 怎么区分
我看了几遍也没有看明白
...全文
358
14
打赏
收藏
请问 string类型 、字符串、字符数组、C-string 怎么区分
请问 string类型 、字符串、字符数组、C-string 怎么区分 我看了几遍也没有看明白
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liberte
2004-01-20
打赏
举报
回复
gzing
tanes
2004-01-20
打赏
举报
回复
怎么可能是我自己造的呢?
请参看
《c++ 编程 -数据结构与程序设计方法》 美 D.S.Mslik(马力克) 著 电子工业出版社出版 03年6月第一版
全书共21章 第9章数组和字符串 里面有 C-string
这是我见过的很少的 直接拿98年的 ANSI/ISO 标准的 C++ 来教人的书。
lan99
2004-01-19
打赏
举报
回复
首先是字符数组和字符串的区分:
字符数组是元素为字符的数组,字符串是数组中最后一个字符为('\0')的字符数组。这是二者的根本区别。即字符串有结束符。
比较相近的是string和c-string:
string类型是封装了字符串操作 的C++类,这个比较通用,也比较好用,因为很多操作都已经定义了。至于C-string,顾名思义,就是c风格的字符串,string类中有一个函数c_str()就是把string 转换为c-string的函数。
二者可以通用,不过c-string比较麻烦!
Wolf0403
2004-01-19
打赏
举报
回复
C-string 这个名次是楼主自造的^_^
jianjian008
2004-01-18
打赏
举报
回复
C/C++中没有字符串变量的说法,是用字符数组存放字符串常量的。
string 类型,(起码在JAVA中)是个字符串类型,有直接量和变量的区分,我是这么认为的!
tanes
2004-01-18
打赏
举报
回复
我研究了几天这个问题
是不是可以这样说 :
string类型 可以有空格,并且末尾 没有 '\0'
C-string 末尾有 '\0' ,并且输出的时候,遇到空格就停止了。
xueweizhong
2004-01-18
打赏
举报
回复
》请问 string类型 、字符串、字符数组、C-string 怎么区分
》我看了几遍也没有看明白
1 字符数组是
元素为字符(character)
的数组
2 字符串是
2.1
数组中最后一个字符为(char(), or wchar_t(), ('\0'))
的字符数组
3 string类型是
封装了字符串操作
的C++类
4 C-string
?????
5 至于"字符串”是否就是 <string-literal>,
那就有些疑问了
因为还没有人翻译过C++STD。
还待请教熟悉国内译本的....
webpie0217
2004-01-11
打赏
举报
回复
希望你发现,其基本的结构都是数组,同一类型的无顺序的符号序列。
romeohua2004
2004-01-11
打赏
举报
回复
字符数组:char[]是一个char型的数组
字符串:char*它可以指向动态内存区也可以指向一个字符数组
string:C++标准库中的一个模板类,它的声明如下:
template <class charT,
class traits=char_traits<charT>,
class Allocator = allocator<charT>
>class basic_string;
typedef basic_string<char> string
因此,string其实并不是类,它是一个typedef的模板
CString是MFC中的一个类
knightmsn
2004-01-11
打赏
举报
回复
我借楼主的一角问同样的问题:
字符指针和字符串应该是同样的写法吧,
字符指针变量a,char * a,字符数组a,char * a
byyyyy
2004-01-11
打赏
举报
回复
string在MFC中是个类,里面有很多实现字符串的方法。
字符串就是"XX"这样的东西了。
字符数组就是X[] = “XX”的东西了
不知道理解的对不对。
dddd8888
2004-01-11
打赏
举报
回复
具体有什么不懂再问
dddd8888
2004-01-11
打赏
举报
回复
你看它的变量声明就行了
一般在C++中,用string(标准库)
MFC中用CString
c中用字符数组 或 char*
Wolf0403
2004-01-11
打赏
举报
回复
字符串,一般来说在内存中的表现都是一个连续字符串。C 语言约定 '\0' (Ascii 0) 作为一个字符串的结束。用引号包含的字面值(例如:"Hello")被 C 编译器自动添加一个末尾的 '\0' 处理。一个指针指向一个包含字符串内容的内存,就是一个字符串指针;任何以 char 为类型的数组都是字符数组。
romeohua2004(小蘑菇) 很明白地解释了两个类。
C 语言 ——
字符串
简介
字符串
(character
string
)是一个或多个字符的序列,如下所示: “Zing went the
string
s of my heart!” 双引号不是
字符串
的一部分。双引号仅告知编译器它括起来的是
字符串
,正如单引号用于标识单个字符一样。 本章将简单介绍一下
字符串
以及数组的概念,详细内容请参考。 1. char
类型
数组和 null 字符 C 语言没有专门用于储存
字符串
的变量
类型
,
字符串
都被储存在 char
类型
的数组中。PS:C++ 提供了
string
类型
来存储
字符串
。 **那么,什么是数组
C语言学习05——
字符数组
与
字符串
摘要:C语言通过
字符数组
处理
字符串
,以'\0'作为结束符(ASCII值为0)。
字符数组
中的0元素标识
字符串
结束,但数组可能包含非
字符串
元素。
字符串
常量和变量分别用""和
字符数组
表示,数组大小通常比
字符串
长度大1(含'\0')。
字符串
变量可修改,但需通过<
string
.h>库函数(如strlen、strcpy等)进行操作。例如,char dt[]="abcd"的数组大小为5(含'\0'),但
字符串
长度为4。
字符串
工具包提供复制、连接和比较等功能。
字符串
与字符指针——没有
string
类型
的世界
C 语言没有
string
类型
,
字符串
是\0结尾的 char 数组char str[]可修改(栈上副本),char *str不可修改(只读区)sizeof算整个数组含\0strlen不含\0
字符串
比较用strcmp==比较的是地址strcpy不安全,实际项目用strncpy声明
字符数组
时多留 1 字节给\0。
C++/
字符串
小结: 1.常用ASCII值: (1)‘A’- 'Z’是65 ~ 90 (2)‘a’ - 'z’是97 - 122 (3)0 - 9是 48 - 57 (4)a与A相差32 2.字符可以参与运算,运算时会将其当做整数。 计算时用的都是整数,只有在输出的时候才是一个字符。 3 .printf 输出
字符串
:%s,例如printf("%s", str); 4 .
字符串
就是
字符数组
加上结束符’\0’,因此可以使用
字符串
来初始化
字符数组
。 【注意】由于每个
字符串
结尾含一个’\0’字符,
字符数组
的长度至少要比
字符串
的长
C++编程基础(五):
字符数组
和
字符串
本文介绍了C++中两种处理文本数据的方式:C风格
字符串
字符数组
和std::
string
类。C风格
字符串
以'\0'结尾,存在安全性问题,需注意空间分配和指针操作。文章详细讲解了其定义、初始化、输入输出及常用
字符串
函数。相比之下,std::
string
类更安全易用,提供了丰富的成员函数,包括构造、访问、修改、查找等操作。现代C++编程推荐优先使用std::
string
,它不仅简化了
字符串
处理,还避免了C风格
字符串
的常见陷阱。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章