/*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相互转换的更多相关文章

  1. Javascript Jquery 中的数组定义与操作_子木玲_新浪博客

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  2. 新旧图号(图幅号)转换/计算/检查,经纬度转换计算,C#代码

    图号(图幅号):地图图号是指为便于使用和管理,按照一定方法将各分幅地图进行的编号. 经常用到图号,但是在网上一直没有找到一个完整的图号转换程序,因此自己写了一个图号处理的库,分享出来.如有错误请指正. ...

  3. Flex布局新旧混合写法详解(兼容微信)

    原文链接:https://www.usblog.cc/blog/post/justzhl/Flex布局新旧混合写法详解(兼容微信) flex是个非常好用的属性,如果说有什么可以完全代替 float 和 ...

  4. css弹性盒子新旧兼容

    前言:本篇随笔是对弹性盒子有了解的人来写的这篇文章,具体属性产生的效果这里不做说明,基础的东西去查文档.这里只是总结. 时至今日,css3的flex弹性盒子在移动端基本上都是支持的,但不排除有些些低版 ...

  5. Flex 布局新旧混合写法详解(兼容微信)

    flex 是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了(虽然现在还有很多不支持 flex 的浏览器).然而国内很多浏览器对 flex 的支持都 ...

  6. 使用Flexbox:新旧语法混用实现最佳浏览器兼容

    Flexbox非常的棒,肯定是未来布局的一种主流.在过去的几年这之中,语法改变了不少,这里有一篇“旧”和“新”新的语法区别教程(如果你对英文不太感兴趣,可以移步阅读中文版本).但是,如果我们把Flex ...

  7. JavaScript 兼容新旧版chrome和firefox的桌面通知

    1.新/旧版本的chrome和firefox都可支持,IE下不支持因此设置为了在最小化窗口处闪烁显示提示文字. 2.设置为提示窗口显示5秒即关闭. 3.可设置图标和点击提示窗口要跳转到的页面(见输入参 ...

  8. Android技巧小结之新旧版本Notification

    最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...

  9. [实用指南]如何使您的旧代码库(遗留代码)符合MISRA C 2012编码规范?

    重用旧代码是现实,但是在安全关键型软件项目中重用旧代码并实现MISRA C 2012的完全合规性是艰巨的任务. 最初的MISRA原则是为了在开发代码时应用而创建的,即使文档本身也有警告: " ...

随机推荐

  1. Xmind写测试点

    引入: 既然我们这篇要说<Xmind写测试点>,那么先来回顾一下,什么情况下才写测试点,而不写测试用例. 之前写过一篇<测试用例-20问20答>,没看过的朋友戳这里:,其中就有 ...

  2. 新来的老大,剑走偏锋,干掉AOP做操作日志,实现后我们都惊呆了

    前言 用户在操作我们系统的过程中,针对一些重要的业务数据进行增删改查的时候,我们希望记录一下用户的操作行为,以便发生问题时能及时的找到依据,这种日志就是业务系统的操作日志. 本篇我们来探讨下常见操作日 ...

  3. 在 Linux 系统中如何管理 systemd 服务

    在上一篇文章<Linux的运行等级与目标>中,我介绍过 Linux 用 systemd 来取代 init 作为系统的初始化进程.尽管这一改变引来了很多争议,但大多数发行版,包括 RedHa ...

  4. 解决IIS应用程序池默认回收导致程序崩溃

      这些网上常见的解决: 其实他们只知其一不知其二:一味的调长超时时间根本就是治标不治本的解决方案, 超时时间再长也会出现到期时间,那时候我们该怎么办呢?(某些吃瓜群众就会大喊:那我就手动去重启一下呗 ...

  5. Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列

    正整数的摆动序列 问题描述 如果一个序列的奇数项都比前一项大,偶数项都比前一项小,则称为一个摆动序列.即 a[2i]<a[2i-1], a[2i+1]>a[2i]. 小明想知道,长度为 m ...

  6. Java实现 蓝桥杯 基础练习 杨辉三角形

    基础练习 杨辉三角形 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数. 它的一个重要性质 ...

  7. Java实现 LeetCode 171 Excel表列序号

    171. Excel表列序号 给定一个Excel表格中的列名称,返回其相应的列序号. 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> ...

  8. Java实现 LeetCode 111 二叉树的最小深度

    111. 二叉树的最小深度 给定一个二叉树,找出其最小深度. 最小深度是从根节点到最近叶子节点的最短路径上的节点数量. 说明: 叶子节点是指没有子节点的节点. 示例: 给定二叉树 [3,9,20,nu ...

  9. java实现海盗比酒量

    ** 海盗比酒量** 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的,再次重复- 直到开了第4瓶酒,坐着的已经所剩 ...

  10. java实现第九届蓝桥杯三角形面积

    三角形面积 小明最近在玩一款游戏.对游戏中的防御力很感兴趣. 我们认为直接影响防御的参数为"防御性能",记作d,而面板上有两个防御值A和B,与d成对数关系,A=2^d,B=3^d( ...