📜  cstring 到字符串 - C++ (1)

📅  最后修改于: 2023-12-03 15:14:23.438000             🧑  作者: Mango

cstring 到字符串 - C++

在 C++ 语言中,cstring 是一种字符串类型,它与普通字符串的区别在于,cstring 是一个字符数组,数组中的每一个元素都是一个字符,以 '\0' 标识结尾。

在实际开发中,往往需要将 cstring 转换为字符串进行处理,这个过程可以通过以下几种方式实现。

1. 用字符串类转换

使用字符串类 string 可以很方便地将 cstring 转换为字符串。

#include <string>
#include <cstring>
using namespace std;

int main() {
    char cstr[] = "Hello, world!";
    string str(cstr);
    // str = "Hello, world!"
    return 0;
}
2. 手动转换

手动转换需要用到循环和字符拼接操作,需要比较多的代码量,但是效率较高。

#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;
}
3. 使用 stringstream 类

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 转换为字符串,需要根据实际情况选择最适合的方式。