【编程练习】将string容器保存在字符指针数组中
2013-12-10 21:37
288 查看
编写程序读入一组 string 类型的数据,并将它们存储在vector 中。接着,把该 vector 对象复制给一个字符指针数组。为 vector 中的每个元素创建一个新的字符数组,并把该 vector 元素的数据复制到相应的字符数组中,最后把指向该数组的指针插入字符指针数组。
-------------------------《C++ Primer第四版》习题4.34------------------
-------------------------《C++ Primer第四版》习题4.34------------------
#include<iostream> #include<string> #include<vector> using namespace std; int main() { vector<string> svec; string str; cout<<"Enter striings:(ctrl-z to end)"<<endl; while(cin>>str) svec.push_back(str); //从标准输入流中读取元素,保存在vector<string>中 char **parr=new char*[svec.size()]; //用字符指针数组parr保存vector中的元素 size_t ix=0; for(vector<string>::iterator iter=svec.begin();iter!=svec.end();iter++,++ix) { char *p=new char[(*iter).size()+1]; //为每一个元素创建字符数组 strcpy(p,(*iter).c_str()); //将string元素转化并存入字符数组 parr[ix]=p; //用字符指针数组保存字符指针首地址 } cout<<"Content of vector:"<<endl; for(vector<string>::iterator iter1=svec.begin();iter1!=svec.end();iter1++) //输出容器中的元素 cout<<*iter1<<endl; for(ix=0;ix!=svec.size();ix++) //输出字符指针数组中保存的数组 cout<<parr[ix]<<endl; for(ix=0;ix!=svec.size();ix++) //释放各个字符数组 delete[] parr[ix]; delete [] parr; //释放字符指针数组 return 0; }
相关文章推荐
- C语言编程(练习3:数组与指针)
- C语言编程(练习9:数组与指针)
- 字符数组与与指针保存字符串区别
- Delphi的字符(Char), 字符串(String), 字符串指针( PChar ), 字符数组 array of char
- C语言编程(练习5:数组与指针)
- 《C Primer Plus 第五版》第十章(数组和指针)编程练习
- C语言编程(练习4:数组与指针)
- C语言编程(练习6:数组与指针)
- c++ primer plus 第五版 第七章 编程练习 第 8 题 (字符数组转成字符串,trim使用,判断空行)
- 把vector中的string对象导入到字符指针数组中
- C Primer Plus 第10章 数组和指针 编程练习
- 字符串string 字符数组与指向字符串的指针pchar的区别与联系
- C和指针之数组编程练习3(判断矩阵是否为单位矩阵)
- C Primer Plus (第五版) 第十章 数组和指针 编程练习
- C和指针之字符串编程练习11(统计一串字符包含the的个数)
- c: string 字符指针与字符数组的区分
- leetcode -- 557. Reverse Words in a String III 【字符反转 + 字符数组 + 双指针 + 状态记录】
- 用string类型的vector对象创建一个字符指针数组
- C和指针之数组编程练习8(8皇后问题)
- C和指针 第一章编程练习3 输入字符输出并输出校验和