|
|
1
11
字符数组只是一个字符数组 字符串是使用字符数组的数据结构 一些字符串表示使用空终止符(如C),另一些使用长度前缀 |
|
|
2
18
一串 是 抽象的,但是 序列 字符的它没有提到实现。如果您想基于字符的链接列表创建一个字符串实现,没有什么能阻止您。 在C这样的语言中,几乎没有区别——只是C字符串是一个以空结尾的字符序列,位于连续地址,通常通过指针访问。 在OOP语言中,字符串将是某个字符串类的对象。这可能在内部将数据保存在字符数组中,但您不需要知道这一点。字符数组只能是一个简单的数组,但如果实现者决定,字符串类可以对字符串提供许多操作(子字符串、regex等)。 |
|
|
3
7
我以前教编程,这就是我用来解释这个特定问题的方法。 首先,把注意力集中在这两件事上 常见的 :字符数组和字符串都由一系列字符组成。作为一个 序列 这意味着字符是有序的,并且可以枚举它们。 现在关注这两件事中的每一件事,尤其是它们各自的特点。 不同的 方法,为了这个共同点。 一 字符数组 添加已知要添加的任何数组:索引和对单个项的随机访问。 一 一串 另一方面,增加了一个事实,即字符序列被视为一个具有自身属性的整体。在一些实现中,实现这意味着改变字符的存储方式(例如,在C字符串中添加一个终止的空值)。 这种方法(先看看共性,然后看看事物与它们之间的差异)在各种情况下都被证明是有用的。 希望这有帮助。 |
|
4
4
在C语言中,这些几乎是相同的,尽管字符串的末尾会有一个额外的空字符。 在其他语言(Java、C等)中,字符串是对象,而字符数组是…的数组。字符(原始数据类型)。 通常,字符串是用字符数组实现的。 |
|
|
5
2
答案在某种程度上取决于你所说的语言。在.NET/C世界中,字符串是不可变的对象,而char数组可以很容易地在数组中添加/更改值。字符串可以以只读方式被视为字符数组,因为您可以迭代字符串中的字符。 抽象地说,我认为最大的区别在于你想如何与他们合作。您是想使用文本块,比如向最终用户显示消息,还是希望查看一系列字符,在列表中进行一些处理?在某种程度上,这都是相当主观的。 |
|
|
6
0
|
|
7
0
C样式的字符串在内部由字符数组表示,结尾是'\0',表示字符串的结尾。 在C++中,String .h中定义了一个String容器类,它提供了一些典型的字符串操作来操作字符串。 |
|
8
0
这取决于语言。在C-ish语言中,它们几乎是同序的。您可以声称不同之处在于“字符串”有一个隐式终止nul,但这将是分裂的头发。 Fortran是另一个极端。这里的字符数组和字符串是完全不同的类型,它们可以使用不同的操作。 |
|
|
9
0
字符串是以空字符__ \0_ |
|
|
10
0
在C中,字符串是以空字符(\0)结尾的字符数组,但是 在C++中,一个字符串是一个类,我们使用它的对象,并且在结尾没有空字符。 但字符数组的末尾包含空字符。 此外,我们可以使用C++中的字符串对象运算符。 |