gpt4 book ai didi

c++ - char* 列表到字符串 vector

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:11:39 25 4
gpt4 key购买 nike

看起来当我 cout *cp 时,它只输出字符串的第一个字母,在我将它们放入 vector 后,我的输出是空白的。我做错了什么?

//write a program to assign the elements from a list of char* pointers to c-style character strings to a vector of strings
#include <iostream>
#include <cstring>
#include <vector>
#include <list>
#include <string>
using namespace std;
int main ()
{
list<const char*> clist;
cout<<"please enter a string"<<endl;
for(string s; getline(cin,s); )
{
const char* cp=s.c_str();
clist.push_back(cp);
cout<<*cp;
}
cout<<*clist.begin();
vector<string> svec;
svec.assign(clist.begin(),clist.end());
for(vector<string>::iterator iter=svec.begin(); iter!=svec.end(); ++iter)
cout<<*iter<<endl;
return 0;
}

最佳答案

这将打印整个字符串:

cout << cp;  // You're providing cout a const char *

这只会打印一个字符:

cout << *cp; // You're providing cout a char

至于你的 vector 有什么问题,你只存储了指向字符串的指针,而不是字符串本身。字符串的内存超出范围。正如其他人所说,使用 std::string 而不是原始 const char *

关于c++ - char* 列表到字符串 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8082122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com