请问 string类型 、字符串、字符数组、C-string 怎么区分

tanes 2004-01-11 09:58:38
请问 string类型 、字符串、字符数组、C-string 怎么区分
我看了几遍也没有看明白
...全文
245 14 打赏 收藏 转发到动态 举报
写回复
用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=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物中的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动中发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一类重要物质,对于维持生物体的正常生理功能具有至关重要的作用。

64,701

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧