ca33a_demo_c++_新旧代码的兼容char数组与vector_string相互转换
/*ca33a_demo_c++33_CppPrimer_新旧代码的兼容_txwtech
旧代码:数组和c风格字符串
新代码:vector和string
相互转换:
c风格字符串<- ->string
数组<- ->vector
C3867错误。
https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-2/compiler-error-c3867?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev15.query%3FappId%3DDev15IDEF1%26l%3DZH-CN%26k%3Dk(C3867)%26rd%3Dtrue&view=vs-2019
const char *str=st.c_str(); c_str后面的括号不要忘记写上
*/
/*ca33a_demo_c++33_CppPrimer_新旧代码的兼容_txwtech
旧代码:数组和c风格字符串
新代码:vector和string
相互转换:
c风格字符串<- ->string
数组<- ->vector C3867错误。
https://docs.microsoft.com/zh-cn/cpp/error-messages/compiler-errors-2/compiler-error-c3867?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev15.query%3FappId%3DDev15IDEF1%26l%3DZH-CN%26k%3Dk(C3867)%26rd%3Dtrue&view=vs-2019
const char *str=st.c_str(); c_str后面的括号不要忘记写上 */ #include <iostream>
#include <string>
#include <vector>
using namespace std; int main()
{
string st("Hello World");
st = st + " bill";
cout <<"c++:string st: "<< st << endl; const char *str=st.c_str();//c++转c风格字符串,必须加上const,常字符指针
cout << "c风格*str: "<<str << endl;
//getchar();
const size_t arr_size = ;
int int_arr[arr_size] = {,,,,,};
vector<int> ivec(int_arr, int_arr + arr_size);//数组转vector, int_arr默认指针指向第一个,int_arr + arr_size指向最后一个的后面 [ 开区间,保活。 )闭区间不包括。前包后不包
cout << "间隔ivec:" << endl;
for (vector<int>::iterator itr = ivec.begin(); itr != ivec.end(); ++itr)
{
cout << *itr << endl;
}
cout << "间隔ivec2:" << endl;
vector<int> ivec2(int_arr+,int_arr+);//2,3,4的数据赋值到vector
for (vector<int>::iterator itr = ivec2.begin(); itr != ivec2.end(); ++itr)
{
cout << *itr << endl;
} return ;
}
/*ca33b_demo_c++_txwtech
vector数据放入数组
*/
#include <iostream>
#include <string>
#include <vector> using namespace std; int main()
{
vector<int> ivec;
int ival; cout << "Enter number:(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;//vector数据放入数组
for (ix = ; ix < ivec.size(); ++ix)
{
cout <<"vector to 数组" <<*(parr + ix) << endl;
}
delete[] parr;
return ;
}
/*习题4.34—4.35—c++_txwtech
1.读入一组string数据,放入vector
3.vector字符串->字符指针数组,vector每个字符串--创建新的动态字符数组,
4.vector字符串复制到字符数组
5.字符数组放到动态字符指针数组里面
//cin与getline方法,cin遇到空格就默认一个字符串,getline不识别空格,直到回车,默认一个字符串输入结束
while (getline(cin, str))
svec.push_back(str);
*/
/*习题4.34—4.35—c++_txwtech
1.读入一组string数据,放入vector
3.vector字符串->字符指针数组,vector每个字符串--创建新的动态字符数组,
4.vector字符串复制到字符数组
5.字符数组放到动态字符指针数组里面
//cin与getline方法,cin遇到空格就默认一个字符串,getline不识别空格,直到回车,默认一个字符串输入结束
*/
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <vector> using namespace std; int main()
{
vector<string> svec;
string str;
cout << "enter strings: (ctrl+Z) to end" << endl;
//while (cin >> str) //cin与getline方法,cin遇到空格就默认一个字符串,getline不识别空格,直到回车,默认一个字符串输入结束
while (getline(cin, str))
svec.push_back(str);//1
//创建动态字符指针数组
//数组里面放的指针
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() + ];//*iter指向的是一个字符串//
strcpy(p,(*iter).c_str());//vector转c风格//
parr[ix] = p;//动态字符数组赋值给字符指针//
}
cout << "content of vector: " << endl;
for (vector<string>::iterator iter = svec.begin(); iter != svec.end(); ++iter)
{
cout << *iter << endl;
}
cout << "Content of charactor arrays: " << endl;
for (ix = ; ix != svec.size(); ++ix)
{
cout << parr[ix] << endl;
}
//每个指针delete
for (ix = ; ix != svec.size(); ++ix)
{
delete parr[ix];
}
delete[] parr; //getchar();
return ;
}
ca33a_demo_c++_新旧代码的兼容char数组与vector_string相互转换的更多相关文章
- Javascript Jquery 中的数组定义与操作_子木玲_新浪博客
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- 新旧图号(图幅号)转换/计算/检查,经纬度转换计算,C#代码
图号(图幅号):地图图号是指为便于使用和管理,按照一定方法将各分幅地图进行的编号. 经常用到图号,但是在网上一直没有找到一个完整的图号转换程序,因此自己写了一个图号处理的库,分享出来.如有错误请指正. ...
- Flex布局新旧混合写法详解(兼容微信)
原文链接:https://www.usblog.cc/blog/post/justzhl/Flex布局新旧混合写法详解(兼容微信) flex是个非常好用的属性,如果说有什么可以完全代替 float 和 ...
- css弹性盒子新旧兼容
前言:本篇随笔是对弹性盒子有了解的人来写的这篇文章,具体属性产生的效果这里不做说明,基础的东西去查文档.这里只是总结. 时至今日,css3的flex弹性盒子在移动端基本上都是支持的,但不排除有些些低版 ...
- Flex 布局新旧混合写法详解(兼容微信)
flex 是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器).然而国内很多浏览器对 flex 的支持都 ...
- 使用Flexbox:新旧语法混用实现最佳浏览器兼容
Flexbox非常的棒,肯定是未来布局的一种主流.在过去的几年这之中,语法改变了不少,这里有一篇“旧”和“新”新的语法区别教程(如果你对英文不太感兴趣,可以移步阅读中文版本).但是,如果我们把Flex ...
- JavaScript 兼容新旧版chrome和firefox的桌面通知
1.新/旧版本的chrome和firefox都可支持,IE下不支持因此设置为了在最小化窗口处闪烁显示提示文字. 2.设置为提示窗口显示5秒即关闭. 3.可设置图标和点击提示窗口要跳转到的页面(见输入参 ...
- Android技巧小结之新旧版本Notification
最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...
- [实用指南]如何使您的旧代码库(遗留代码)符合MISRA C 2012编码规范?
重用旧代码是现实,但是在安全关键型软件项目中重用旧代码并实现MISRA C 2012的完全合规性是艰巨的任务. 最初的MISRA原则是为了在开发代码时应用而创建的,即使文档本身也有警告: " ...
随机推荐
- 抛开 Spring ,你知道 MyBatis 加载 Mapper 的底层原理吗?
原文链接:抛开 Spring ,你知道 MyBatis 加载 Mapper 的底层原理吗? 大家都知道,利用 Spring 整合 MyBatis,我们可以直接利用 @MapperScan 注解或者 @ ...
- [VuePress]个人博客 -- 批处理自动化编译提交 -- 排错记录
建了一个VuePress的个人博客 想着写个批处理,自动编译并上传到GitHub. 结果遇到两个问题, 一个是,vuepress build docs编译后,这个命令执行完就exit了 研究了下bat ...
- 添加nginx新模块,获取客户真实ip
当前是客户端登录软件后台获取不到客户的真实ip而是云盾的代理ip 为了获取到真实ip后来发现通过配置nginx的read_ip模块就可以了 获取客户的真实ip使用Nginx的realip模块 当Ngi ...
- win10和centos7双系统双磁盘引导的实现
win10和centos7双系统双磁盘引导的实现1.背景:dell5460笔记本电脑M2-120G固态盘无法在bios中引导,新装了M360G固态盘后,考虑把120G固态盘安装centos7.5系统做 ...
- 【RT-Thread笔记】OneNet软件包的使用
去年,RT-Thread发布了RT-Thread Studio初版RT-ThreadStudio的使用体验,经过不断更新迭代之后,来到了V1.1.0,咱也来拥抱一下新版本. 本篇笔记咱们以接入OneN ...
- MVVM 小雏形 knockout
前言 knockout学过的当工具脚本用,就像jquery一样使用,学习成本15分钟,没学过的可学可不学. knockout 是上古神器,话说在远古开天辟地,前端到处是飞禽走兽,一片混乱. 这时候人类 ...
- Rocket - tilelink - mask
https://mp.weixin.qq.com/s/Gqv09RIgSSg5VKe-wb4aGg 讨论tilelink中使用MaskGen生成mask的用法. 1. tilelink中的ma ...
- 数据库之 MySQL --- 视图的原理解析与创建(八)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.什么是视图? 视图:MySQL从5.0.1版本开始提供视图功能.一种虚拟存在的表,行和列的数据来自定 ...
- Java实现 LeetCode 793 阶乘函数后K个零 (分析)
793. 阶乘函数后K个零 f(x) 是 x! 末尾是0的数量.(回想一下 x! = 1 * 2 * 3 * - * x,且0! = 1) 例如, f(3) = 0 ,因为3! = 6的末尾没有0:而 ...
- Java实现 LeetCode 766 托普利茨矩阵(暴力)
766. 托普利茨矩阵 如果一个矩阵的每一方向由左上到右下的对角线上具有相同元素,那么这个矩阵是托普利茨矩阵. 给定一个 M x N 的矩阵,当且仅当它是托普利茨矩阵时返回 True. 示例 1: 输 ...