📅  最后修改于: 2023-12-03 15:14:23.438000             🧑  作者: Mango
在 C++ 语言中,cstring 是一种字符串类型,它与普通字符串的区别在于,cstring 是一个字符数组,数组中的每一个元素都是一个字符,以 '\0' 标识结尾。
在实际开发中,往往需要将 cstring 转换为字符串进行处理,这个过程可以通过以下几种方式实现。
使用字符串类 string 可以很方便地将 cstring 转换为字符串。
#include <string>
#include <cstring>
using namespace std;
int main() {
char cstr[] = "Hello, world!";
string str(cstr);
// str = "Hello, world!"
return 0;
}
手动转换需要用到循环和字符拼接操作,需要比较多的代码量,但是效率较高。
#include <cstring>
using namespace std;
int main() {
char cstr[] = "Hello, world!";
int len = strlen(cstr);
char *str = new char[len + 1];
for (int i = 0; i < len; ++i) {
*(str + i) = *(cstr + i);
}
*(str + len) = '\0';
// str = "Hello, world!"
delete[] str;
return 0;
}
stringstream 类是一个方便的输入/输出流,它可以将各种类型的数据转换为字符串,包括 cstring。
#include <sstream>
#include <cstring>
using namespace std;
int main() {
char cstr[] = "Hello, world!";
stringstream ss;
ss << cstr;
string str = ss.str();
// str = "Hello, world!"
return 0;
}
综上所述,以上三种方式都可以将 cstring 转换为字符串,需要根据实际情况选择最适合的方式。