1. 程式人生 > >C/C++ 數組、字符串、string

C/C++ 數組、字符串、string

eva 修改 引用 strcmp span 兩個 引用數組 hello col

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。

C/C++ 數組、字符串、string