C字符串和C++字符串有什么区别?特别而做动态内存分配C字符串和C++字符串有什么区别?
回答
我几乎不知道从哪里开始:-)
在C中,字符串只是char
阵列其中,按照惯例,年底用NULL字节。在动态内存管理方面,你可以简单地为它们提供空间(包括额外的字节)。修改字符串时内存管理是您责任:
char *s = strdup ("Hello");
char *s2 = malloc (strlen (s) + 6);
strcpy (s2, s);
strcat (s2, ", Pax");
free (s);
s = s2;
在C++中,字符串(std::string
)与所有相关的自动化存储管理和控制,这使得他们很多更安全和更容易使用的对象,尤其是对新手。对于动态分配,使用类似:
std::string s = "Hello";
s += ", Pax";
我知道我倒是喜欢使用,后者。您可以(如果您需要)始终使用c_str()
方法从std::string
中构建一个C字符串。
'std :: string'是对象... – dmckee 2010-08-11 02:56:51
该死的你c_str()! – 2010-08-11 06:11:06
C++字符串是更安全,更方便,并且支持不同的字符串操作的功能,如追加,发现,复制,级联等
C字符串和c串之间++一个有趣的差异是通过下面的示例
所示#include <iostream>
using namespace std;
int main() {
char a[6]; //c string
a[5]='y';
a[3]='o';
a[2]='b';
cout<<a;
return 0;
}
输出»¿boRy¤£·F·裨»¿
#include <iostream>
using namespace std;
int main()
{
string a; //c++ string
a.resize(6);
a[5]='y';
a[3]='o';
a[2]='b';
cout<<a;
return 0;
}
输出男孩
我希望你明白了!
这种来自C的行为是造成Heartbleed等错误的原因。 – saolof 2017-02-12 09:57:40
- 1. 在C#中。字符串和字符串有什么区别?
- 2. 在C#中的区别是什么:字符串VS字符串
- 3. C中的字符串和ASCII字符串有区别吗?
- 4. 字符串和字符串有什么区别?
- 5. COM字符串(BSTR)和.NET字符串有什么区别?
- 6. golang中的[]字符串和...字符串有什么区别?
- 7. char []和C++中的字符串有什么区别?
- 8. 字符串和字符串C之间的区别#
- 9. C#,Visual Basic.NET和托管C++之间的字符串文字有什么区别?
- 10. 字符串和Javascript中的字符数组有什么区别?
- 11. R中的字符串和字符有什么区别?
- 12. 两个字符串有什么区别?
- 13. 字符串,CString,QString有什么区别?
- 14. C++中字符串初始化有什么区别?
- 15. 在C中创建字符串的方法有什么区别?
- 16. 什么是C#字符串
- 17. 在C中的字符串常量和字符串文字之间有什么区别?
- 18. Golang中的*字符串和字符串之间有什么区别?
- 19. 正常字符串和'%s'格式的字符串有什么区别?
- 20. 在.NET中字符串实习和字符串合并有什么区别?
- 21. C#中的字符串和字符串之间有什么区别像Java中的int和Integer吗?
- 22. Ruby中的字符串和符号有什么区别?
- 23. Ruby中的字符串和符号有什么区别?
- 24. C字符串字符串
- 25. C++字符串!=字符串
- 26. 打印和格式化字符串文字有什么区别?
- 27. 字符串和文字有什么区别?
- 28. c字符串分配的区别?
- 29. googletest doc C字符串和字符串
- 30. JNI字符串和C字符串
你是指在两种语言中使用'char *'和'char []'字符串或基于'char'的字符串和'std :: string'之间的区别? – dmckee 2010-08-11 02:43:19
请定义“C string”和“C++ string”的含义。两者(特别是后者)都不明确。 – strager 2010-08-11 02:43:36
阅读http://www.cplusplus.com/reference/string/string/和http://www.macdonald.egate.net/CompSci/hstrings.html – 2010-08-11 02:44:36