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。
C/C++ 數組、字符串、string