C++Primer 4.34习题代码
来源:互联网 发布:暗黑血统2优化补丁 编辑:程序博客网 时间:2024/06/07 05:48
My code:
#include<iostream>
#include<vector>#include<string>
#include<cstring>
using namespace std;
int main()
{
vector<string> svec;
string str;
cout << "Enter strings:(Ctr+Z to end)" << endl;
while(getline(cin, str)) //输入vector元素
svec.push_back(str);
const int row = 100, column = 100;
char a[row][column];
char pointer[row][column]; //存放指针数组
/*
//-----------------测试通过------------------
cout << "---------------------迭代器---------------------" << endl;
vector<string>::size_type index = 0;
for(vector<string>::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++index)
strcpy(*(a+index), (*iter).c_str()); //将vector的对象复制给指针数组;注意此处(*iter).c_str()中圆括号不能省略,
cout << "The svec is: " << endl; //因点操作符的优先级高于解引用操作符,否则程序会崩溃;另外,必须用.c_str()函数返回C风格字符串
for(vector<string>::iterator iter = svec.begin(); iter != svec.end(); ++iter)
cout << *iter << "\t"; //输出容器
cout << endl << "The array is: " << endl;
//cout << svec.end()-svec.begin() << endl;
for(vector<string>::size_type ix = 0; ix < svec.end()-svec.begin(); ++ix)
cout << a[ix] << "\t";
cout << endl;
*/
//-----------------测试通过------------------
cout << "----------------------下标---------------------" << endl;
for(vector<string>::size_type ix = 0; ix != svec.size(); ++ix)
{
strcpy(a[ix], svec[ix].c_str()); //将vector的对象复制给指针数组
strcpy(pointer[ix] , a[ix]); //此处a[ix]可换为*(a+ix)
}
cout << "The svec is: " << endl;
for(vector<string>::size_type ix = 0; ix != svec.size(); ++ix)
cout << svec[ix] << "\t"; //输出容器
cout << endl << "The array is: " << endl;
for(vector<string>::size_type ix = 0; ix != svec.size(); ++ix)
cout << a[ix] << "\t"; //输出字符数组
cout << endl << "The pointer is: " << endl;
for(size_t ix = 0; ix != svec.size(); ++ix)
cout << pointer[ix] << "\t";
return 0;
}
//参考答案
/*
#include<iostream>
#include<vector>
#include<string>
#include<cstring>
using namespace std;
int main()
{
vector<string> svec;
string str;
cout << "Enter strings:(Ctr+Z to end)" << endl;
while(cin >> str) //输入vector元素
svec.push_back(str);
char **parr = new char*[svec.size()]; //创建字符指针数组
size_t ix = 0;
for(vector<string>::iterator iter = svec.begin(); iter != svec.end(); ++iter, ++ix) //处理vector元素
{
char *p = new char[(*iter).size()+1]; //创建字符数组
strcpy(p, (*iter).c_str()); //复制vector元素的数据到字符数组
parr[ix] = p; //将指向字符数组的指针插入到字符指针数组
}
for(ix = 0; ix != svec.size(); ++ix)
//{
// cout << parr[ix] << "\t"; //一样也是输出的是字符串,并不是指针地址。
delete [] parr[ix]; //释放各个字符数组
//}
delete [] parr; //释放字符指针数组
return 0;
}
*/
/*
测试实例
hello world
hello sang
just let them alone
and don't care about them
*/
如果您对本文满意,请回复,谢谢^ . ^ . ^ . ^
同时欢迎提出不同意见,以帮助我改进,不胜感激!!!
——桑海整理
- C++Primer 4.34习题代码
- c++primer习题4.35/4.34
- c++primer 习题4.34/4.35
- c++primer 第一章课后习题 编程代码
- c++primer 习题9.12
- c++primer 习题9.35
- c++primer 习题9.36
- c++primer 习题9.18
- c++primer 习题9.20
- c++primer 习题9.42
- c++primer 习题9.43
- c++primer 习题9.26
- C++Primer习题6.12
- C++primer习题6.20
- C++Primer习题9.26
- C++Primer 习题9.38
- C++Primer 习题9.39
- C++Primer习题9.40
- CSDN第一篇博文
- 时光悄悄流逝,光阴不再使你我天真
- matlab中hist和histc函数的用法
- #pragma package(smart_init)
- Web服务器Tomcat集群与负载均衡技术
- C++Primer 4.34习题代码
- STP协议的形象化理解-一点感慨
- 智力题算法题
- Welcome
- win7安装apache+mysql+php的教程
- cocos2d-x自制工具01:AnimatePacker
- 为MongoDB编写Js维护脚本
- C语言贪吃蛇代码
- uC/OS-II内核架构解析(3)---uC/OS-II系统核心