C++ 将字符串转换为常量字符的意外行为*
我需要将C++ 将字符串转换为常量字符的意外行为*,c++,string,C++,String,我需要将std::string转换为const char* 为此,我对字符串使用了c_str()方法,如下代码所示: #include <iostream> #include <string> using namespace std; int main(void) { string testStr; cin >> testStr; const char* testStrConst = testStr.c_str(); c
std::string
转换为const char*
为此,我对字符串使用了c_str()
方法,如下代码所示:
#include <iostream>
#include <string>
using namespace std;
int main(void) {
string testStr;
cin >> testStr;
const char* testStrConst = testStr.c_str();
cout << testStrConst << endl;
return 0;
}
#包括
#包括
使用名称空间std;
内部主(空){
字符串testStr;
cin>>testStr;
const char*testStrConst=testStr.c_str();
cout因为它从一开始就不是std::string
的一部分
>
运算符只读取一个空格分隔的单词
使用std::getline()
而不是>
读取标准输入中输入的整行文本
string testStr;
getline(cin, testStr);
操作符>>()
逐字读取(跳过空格)。请改用getline()
。您可能希望在得出结论之前打印出testStr。