QString 转字符串
时间: 2024-08-16 10:05:44 浏览: 49
QString转ASCII
5星 · 资源好评率100%
QString是Qt库中的一个类,它在C++环境中用于处理Unicode字符。如果你需要将QString转换为普通的字符串(通常是C风格的char*或std::string),可以使用以下几种方法:
1. 使用`toStdString()`函数转换为C++标准库的std::string:
```cpp
QString str = "Hello Qt";
std::string strCpp = str.toStdString();
```
2. 使用`const char*`形式:
```cpp
QString str;
//...
const char* cstr = str.toLocal8Bit().data(); // 获取本地编码的字符指针
```
注意这里使用`.toLocal8Bit()`是因为默认的国际化支持可能导致字符不是UTF-8编码,而`.data()`获取的是原始字符数组。
3. 对于C风格的char*,你需要手动分配内存并复制字符:
```cpp
QString str;
//...
char* cstr = new char[str.length() + 1];
str.toLocal8Bit().copy(cstr);
cstr[str.length()] = '\0'; // 添加终止符
```
记得在使用完后释放内存:
```cpp
delete[] cstr;
```
阅读全文