纠结了好久,大神帮忙解决一下,最好能加点注释,该怎么解决
纠结了好久,大神帮忙解决一下,最好能加点注释
编写程序读入一组string类型的数据,并将它们存储在vector中.接着,把该vector对象复制给一个字符指针数组.为vector中的每个元素创建一个新的字符数组,并把该vector元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组.
个人就是觉得C++的数组维数定义好多限制.然后就不懂的简单的把vector中的数据复制到数组中,都是做的很傻...
还有就是string和char之间的转换有点不适应!还有数组指针也有一点小问题...大家帮帮我把注释弄一下,让我理解一下...
非常感谢!!!!
------解决方案--------------------
编写程序读入一组string类型的数据,并将它们存储在vector中.接着,把该vector对象复制给一个字符指针数组.为vector中的每个元素创建一个新的字符数组,并把该vector元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组.
个人就是觉得C++的数组维数定义好多限制.然后就不懂的简单的把vector中的数据复制到数组中,都是做的很傻...
还有就是string和char之间的转换有点不适应!还有数组指针也有一点小问题...大家帮帮我把注释弄一下,让我理解一下...
非常感谢!!!!
------解决方案--------------------
- C/C++ code
#include <iostream> #include <string> #include <vector> using namespace std; int main(int argc, char **argv) { string word; vector<string> svec; cout<<"input some words:"<<endl; //往sve添加元素 while (cin>>word) { svec.push_back(word); } int size = svec.size(); typedef char * charPtr; //声明charPtr类型的动态数组,大小为svec的长度 charPtr *ptr = new charPtr[size]; charPtr word2; //给字符数组中的元素初始化 for (int i = 0; i != size; ++i) { word2 = const_cast<char *>(svec[i].c_str()); ptr[i] = word2; } //输出字符数组中的元素 for (int i = 0; i != size; ++i) { cout<<ptr[i]<<endl; } delete []ptr; system("pause"); return 0; }