C++primer 练习4.31-4.35
Exercise 4.31:
编写程序从标准输入设备读入字符串,并把该串存放在字 符数组中。描述你的程序如何处理可变长的输入。提供比 你分配的数组长度长的字符串数据测试你的程序。
string in_str;
const size_t str_size = ;
char result_size[str_size+]; cout<<"Enter a string<="<<str_size<<"characters"<<endl;
cin>>in_str; size_t len = strlen(in_str.c_str());
if(len > str_size)
{
len = str_size;
cout<<"String is longer than "<<str_size<<"characters and is stored only"<<str_size<<"characters"<<endl;
} strncpy(result_size,in_str.c_str(),len); result_size[len+] = '\0';
Exercise 4.32:
编写程序用 int 型数组初始化 vector 对象。
const size_t arr_size = ;
int int_arr[arr_size]; cout<<"Enter"<<arr_size<<"Numbers:"<<endl;
for(size_t ix =;ix != arr_size;++ix)
{
cin>>int_arr[ix];
}
vector<int> ivec(int_arr,int_arr+arr_size);
Exercise 4.33:
编写程序把 int 型 vector 复制给 int 型数组。
vector<int> ivec;
int ival; cout<<"Enter numbers:(Ctrl+z to end)"<<endl;
while(cin>>ival)
{
ivec.push_back(ival);
} int *parr = new int[ivec.size()];
size_t ix = ;
for(vector<int>::iterator iter = ivec.begin();iter != ivec.end();++iter,++ix)
{
parr[ix] = *iter;
}
delete [] parr;
Exercise 4.34:
编写程序读入一组 string 类型的数据,并将它们存储在 vector 中。接着,把该 vector 对象复制给一个字符指 针数组。为 vector 中的每个元素创建一个新的字符数 组,并把该 vector 元素的数据复制到相应的字符数组 中,后把指向该数组的指针插入字符指针数组。
Exercise 4.35:
输出习题 4.34 中建立的 vector 对象和数组的内容。输 出数组后,记得释放字符数组。
vector<string> svec;
string str; cout<<"Enter string:(Ctrl+z to end)"<<endl;
while(cin>>str)
svec.push_back(str); char **parr = new char*[svec.size()]; size_t ix = ;
for(vector<string>::iterator iter = svec.begin();iter != svec.end();++iter,++ix)
{
char *p = new char[(*iter).size()+];
strcpy(p,(*iter).c_str());
parr[ix] = p;
} //输出vector对象的内容
cout<<"Content of vector:"<<endl;
for(vector<string>::iterator iter2 = svec.begin();iter2 != svec.end();++iter2)
cout<<*iter2<<endl;
cout<<"Content of character arrays:"<<endl;
for(ix = ;ix != svec.size();++ix)
cout<<parr[ix]<<endl;
//释放各个字符数组
for(ix=;ix != svec.size();++ix)
delete [] parr;
C++primer 练习4.31-4.35的更多相关文章
- ERROR: Error in Log_event::read_log_event(): 'Found invalid event in binary log', data_len: 31, event_type: 35报错处理
centos7系统MySQL5.7在用mysqlbinlog命令查询binlog日志时刚开始查询即自动终止查询,查了一下该日志有300M,于是仔细看发现有报错,见下图: 在网上查找经验贴http:// ...
- STL_算法_填充新值(fill、fill_n、generate、generate_n)
C++ Primer 学习中... 简单记录下我的学习过程 (代码为主) 全部容器适用 fill(b,e,v) //[b,e) 填充成v fill_n(b,n,v) ...
- 一次修改闭源 Entity Provider 程序集以兼容新 EntityFramework 的过程
读完本文你会知道,如何在没有源码的情况下,直接修改一个 DLL 以去除 DLL 上的强命名限制,并在该程序集上直接添加你的“友元程序集(一种特殊的 Attribute,将它应用在程序集上,使得程序集内 ...
- haproxy windows环境使用
haproxy下载:http://pan.baidu.com/s/1miEvQUc 测试环境说明: ip地址 作用 开放端口 备注 nbproc 1 daemon defaults mode tcp ...
- android初级篇之apk签名key keystore格式转pk8+x509.pem
转自:http://www.jianshu.com/p/3bd5c68cc44d 常用的android的签名工具有两个即jarsigner 和apksigner.这两种使用的key格式不一样,keys ...
- Java 9将采用新的版本字符串格式
在现有的版本编码格式使用了两年之后,从Java 9开始,Java版本方案将根据业内软件版本编码的最佳实践进行修改.使用或解析Java版本字符串的应用程序开发人员要注意了,因为这种变化 ...
- 我是这么给娃娃取名的(使用 node.js )
依据: 81 命理,需要让五格都为大吉(吉).五格命理请自行谷歌. 我的是单姓复名.姓是固定的. 废话不说,上代码: Array.prototype.contains = function (k) { ...
- des (C语言)
/** * \file des.h * * \brief DES block cipher * * Copyright (C) 2006-2010, Brainspark B.V. * * This ...
- CentOS系统配置记录
1. 挂載 ntfs: 确定已经安装了rpmforge软件库的源.在线安装使用 yum install 命令 含有 rpmforge源. yum install fuse ntfs-3g -y 安装后 ...
- 《Linux及安全》实践3.3
<Linux及安全>实践三 字符集总结与分析 [by lwr] 一.ISO.UCS/UTF.GB系列字符集分析 1.字符集&字符编码 字符集(Charset):是一个系统支持的所有 ...
随机推荐
- <OFFER> 06_PrintListInReversedOrder
#include<stack> #include "List.h" void PrintListReversingly_Iteratively(ListNode* pH ...
- The DELETE statement conflicted with the REFERENCE constraint
Page是主表,主键是pageid:UserGroupPage表中的PageID字段是Page表里的数据. https://www.codeproject.com/Questions/677277/I ...
- 委托的begininvoke
http://blog.csdn.net/cml2030/article/details/2172854 http://blog.163.com/weizhiyong_111/blog/static/ ...
- Luogu 2671 求和 NOIP2015T3
题目链接 题解 20pts $O(n^3)$枚举$x,y,z$,根据题目要求判断 40pts $O(n^2)$枚举$x,z$,需要满足$x,z$奇偶相同 20~40pts的代码我都没有写过...就不贴 ...
- js清除未知定时器的方法
js清除未知定时器的方法 在需要有实时性更新数据的项目中,我们经常会用到很多定时器,我们可能需要一个可以一次性清除所有定时器的方法,并且不通过指定ID一个一个去清除,以下提供两种解决方案: 1.定 ...
- UVa 10801 电梯换乘
https://vjudge.net/problem/UVA-10801 题意:有多个电梯,每个电梯只能到达指定楼层,每个电梯有速度,如果中途换乘电梯,需要额外加60s,求从0层到达k层的最少时间. ...
- lncRNA研究利器之"TANRIC"
http://bioinformatics.mdanderson.org/main/Main_Page http://ibl.mdanderson.org/tanric/_design/basic/i ...
- python 文件分割
import sys,os def split(fromfile,todir,chunksize): partnum = inputfile = open(fromfile,'rb')#open th ...
- zlib__ZC
官网:http://www.zlib.net/ ,所有版本下载:http://www.zlib.net/fossils/ ZC: 我下载的是 zlib-1.2.3.tar.gz 和 zlib-1.2. ...
- 《剑指offer》第二十二题(链表中倒数第k个结点)
// 面试题22:链表中倒数第k个结点 // 题目:输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯, // 本题从1开始计数,即链表的尾结点是倒数第1个结点.例如一个链表有6个结点, ...