天天看點

C/C++(字元串處理)字元指針、字元數組用法大總結

字元指針變量和字元數組都可以處理字元、字元串,但是兩者卻有着本質的差別。今天用到就把所有的總結一下,以供大家參考!

1、字元數組初始化及指派

char c_a[] = {"songjinshi"};//正确

char c_a[] = {'s','o'};//正确

char c_a[] = "songjinshi";//正确

char c_a[11];

c_a = "songjinshi";//錯誤,c_a是一個指針常量不能直接指派

c_a++;//錯誤,c_a是一個指針常量

for(i=0;i<11;i++)

   scanf("%c",c_a+i);//正确

scanf("%s",c_a);//正确

strcpy(c_a,"songjinshi");//正确

2、字元指針初始化及指派

char* c_p = "songjinshi";//正确

char* c_p = 0;//正确,指針變量值為0,字元串長度為0,即字元指針指向一個空字元串

char*c_p = "songjinshi";

c_p = "song";//正确,改變字元指針指向的字元串,即改變字元指針變量的值(位址)

c_p++;//正确,移動指針

printf("%s",c_p);//輸出ongjinshi

char* c_p;

scanf("%s",c_p);//錯誤,c_p是一個字元指針但是沒有指向有效的記憶體位址(空間)

char* c_p = "song";

*c_p = 'z';//錯誤,c_p指向的是常量資料區(常量資料表——靜态存儲區),不能更改裡面的内容

char* c_p = "songjisnhi";

strcpy(c_p,"zhangdi");//錯誤,c_p指向常量資料區,無法更改

繼續閱讀