Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 字符串和字符数组_C++_String - Fatal编程技术网

C++ 字符串和字符数组

C++ 字符串和字符数组,c++,string,C++,String,字符串和字符数组之间有什么区别 在C++中,字符串的每个元素如何访问?在C中,它们是相同的,字符串是char数组,并且有很多标准方法来处理它们,比如SaveTf、StrCAT、StrcPy、Strup、Strchr、STRSTR……/P> 在C++中,还可以使用STL字符串类,它将提供一个可以以更简单的方式操作的面向对象的字符串。优点是代码更容易阅读,您不需要自己为字符串分配/取消分配内存。string管理自己的内存;对于char数组,情况并非如此,但作为局部变量除外 在这两种情况下,您都可以使

字符串和字符数组之间有什么区别


在C++中,字符串的每个元素如何访问?

在C中,它们是相同的,字符串是char数组,并且有很多标准方法来处理它们,比如SaveTf、StrCAT、StrcPy、Strup、Strchr、STRSTR……/P>
在C++中,还可以使用STL字符串类,它将提供一个可以以更简单的方式操作的面向对象的字符串。优点是代码更容易阅读,您不需要自己为字符串分配/取消分配内存。

string
管理自己的内存;对于
char
数组,情况并非如此,但作为局部变量除外

在这两种情况下,您都可以使用
[]
访问单个元素(但对于string,这实际上是
操作符[]


string
有一个缺点,就是你不容易用C++友好的方式使用C-string。

如果有人愿意读这个问题,效率评论可能会引起争议。真的值得投反对票吗?根据我的经验,我看到了性能上的一个重要差异,但我同意对于这样一个基本问题,我可以跳过这个。我在我的帖子中删除了它。@Benoit-不是对我,我没有-1你。没有否决,但仅供参考,STL的现代实现没有性能差异。事实上,一些字符串操作在C++中会更快,因为查询字符串的长度是O(1)操作,而C字符串则是O(n)运算。字符串与char数组不相同。字符数组不限于以特定字符结尾,也不受任何方式的限制\0\0\0\n规则。对于字符数组完全有效。字符数组不是字符串,它只是一个哑字符数组。@Me-Me-Me-Me-Me-Me-Me-Me-Me-Me-Me-Me-Me-Me,去掉它。谢谢。同龄人的压力是变化无常的实际上我更喜欢前面的公式。当然,
[]
即使对于C字符串也是一个运算符,但它不是
运算符[]
@Konrad-是的,字符串和数组上的
[]
之间存在质的区别,这可能超出了本文的范围。我将在这里留下评论,因为它不能直接被否决。@Let_Me_be:胡说八道。对于
字符数组
,没有
运算符[]
;史蒂夫第一次是对的。显然没有任何研究努力。甚至连这两句话的基本格式都不介意。