pax*_*blo 26
我几乎不知道从哪里开始:-)
在C中,字符串只是char数组,按照惯例,它以NUL字节结尾.在动态内存管理方面,您可以简单地malloc为它们提供空间(包括额外的字节).修改字符串时的内存管理是您的责任:
char *s = strdup ("Hello");
char *s2 = malloc (strlen (s) + 6);
strcpy (s2, s);
strcat (s2, ", Pax");
free (s);
s = s2;
Run Code Online (Sandbox Code Playgroud)
在C++中,strings(std::string)是具有所有相关自动内存管理和控制的对象,这使得它们更安全,更易于使用,特别是对于新手而言.对于动态分配,请使用以下内容:
std::string s = "Hello";
s += ", Pax";
Run Code Online (Sandbox Code Playgroud)
我知道我更喜欢使用哪种,后者.您可以(如果需要)始终std::string使用该c_str()方法从a构造一个C字符串.
小智 8
C++字符串更安全,更容易,并且它们支持不同的字符串操作函数,如追加,查找,复制,连接等.
通过以下示例说明了c string和c ++ string之间的一个有趣区别
#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;
}
Run Code Online (Sandbox Code Playgroud)
输出»¿boRy¤£f·Pi»¿
#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;
}
Run Code Online (Sandbox Code Playgroud)
输出男孩
我希望你明白了!