c++ 动态数组和新旧代码的兼容

1.C风格字符串

char ca1[]={'c','+','+'};//字符数组,不是C语言风格字符串
char ca2[]={'c','+','+','\0'};//C语言风格字符串(结尾必须是\0)

char ca3[]="c++";//C语言风格字符串,\0被隐含(结尾必须是\0)

2.c风格字符串的标准库函数

(1)strlen(cal);//检查cal的长度(直到查到/0)

(2)//对两个字符串直接进行比较时,c++字符串比较的是内容,而c比较的是地址

strcmp(s1,s2);//比较s1和s2的大小,如果s1与s2相同,为0;如果s1大于s2,为正数(一般为1);如果s1小于s2,为负数(一般为-1)

(3)拷贝 c++直接通过赋值语句即可完成;c语言通过函数完成

strcpy(s,s1);//将s1的内容拷贝到s中去

(4)连接:c++:直接通过相加即可完成

strcat(s,s1);//将s1连接到s之后,并拷贝到s中去

(5)strncpy(s,s1,n);//将s1的前n位拷贝到s中

strncat(s,s1,n);//将s1的前n位连接到d中,并拷贝到s中去

3.创建动态数组

         int *p=(int *)malloc(n*sizeof(int));//c风格动态数组创建

         free(p);//c风格动态数组释放

         int *pia=new int[n];//c++动态数组创建

 delete[] pia;//c++动态数组释放

(1)const对象的动态数组  const int *pci_pcd=new const int[100]();

(2)静态数组大小不能为0,动态数组大小可以为0

(3)结束时一定要释放动态数组,否则会导致空间泄露

4.新旧代码的兼容问题

旧代码:数组和c风格字符串

新代码:vector和string

(1)c风格字符串和string的相互转化

string st("Hello");

st=st+"bill";

const char *str=st.c_str();

(2)数组和vector的相互转换

       /*数组转换为vector类型*/

const size_t arr_size=6;
int int_arr[arr_size]={1,2,3,4,56,6};

vector<int> ivec(int_arr,int_arr +arr_size);//将数组全部转换为vector类型(前包后不包)
        /*vector类型转换为数组*/
vector<int> ivec2;
int ival;

cout<<"Enter numbers:"<<endl;
while(cin>>ival)
ivec2.push_back(ival);

int *parr=new int[ivec2.size()];

size_t ix=0;
for(vector<int>::iterator iter=ivec2.begin();iter!=ivec2.end();++iter,++ix)
parr[ix]=*iter;


for(ix=0;ix<ivec2.size();++ix)

cout <<*(parr+ix)<<endl;

5.多维数组--数组的数组


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值