C/C++ 数组、字符串、string

1.定义数组时,数组中元素的个数不能是动态的,不能用变量表示(const变量可以),必须是已知的。

2.引用数组时只能引用数组中某个元素,不能引用整个数组。

3.定义二维数组时,若同时全部初始化,则可省略第一维的长度,

int a[][3]={1,2,3,4,5,6,7,8,9};

4.数组做函数参数:

void haha(int array[],int n);
haha(a,10);

实参的值会改变,因为传入的是地址。

5.字符串数组:

char str[]="hello";
char str[]={'h','e','l','l','o','\0'};

上面两者等价,而不与下面等价

char str[]={'h','e','l','l','o'};

两者长度是不一样的,因为字符数组的最后一个元素可以不是'\0',并不会出错。

6.字符串处理函数,头文件:string或string.h

strcat(char[],const char[]);
strcat(str1,str2);

将str2添加到str1尾部,str2保持不变,str1变长。

strcpy(char[],const char[],int n);
strcpy(str1,str2);
strcpy(str1,str2,2);

将str2复制到str1,或将str2的前2个字符复制到str1。

strcmp(const char[],const char[]);
strcmp(str1,str2);

str1=str2,返回0;

str1>str2,返回1;

str1<str2,返回-1。

不能直接比较两个str,因为它们是地址。

strlen(const char[]);
char str[]="hello";
strlen(str);

返回str的长度,不包‘\0‘,故此处为5.
7.string:

string str=“sdsdsdsds”;

string定义的是普通变量而不是数组,可以随便赋值啥的,也可以用下标,如str[3]来访问并能够修改,可以直接用cin、cout。

string可以直接“=”,相当于strcpy;

string可以直接“+”,相当于strcat;

string可以直接“<",">”,相当于strcmp;

vs2015中,sizeof(string)=28。

posted on 2017-08-22 16:30  chakyu  阅读(240)  评论(1编辑  收藏  举报

导航