C語言基礎知識 字元陣列用字串賦值

2021-09-26 05:49:28 字數 1096 閱讀 2636

問題提出:char a[10];  怎麼給這個陣列賦值呢?

1、定義的時候直接用字串賦值

char a[10]="hello";

【注意】不能先定義再給它賦值,如char a[10]; a[10]="hello";這樣是錯誤的,乙個字元怎麼能容納乙個字串?況且a[10]也是不存在的!再如char a[10]; a="hello";//這種情況容易出現,a雖然是指標,但是它已經指向在堆疊中分配的10個字元空間,現在這個情況a又指向資料區中的hello常量,這裡的指標a出現混亂,不允許!

2、對陣列中字元逐個賦值

char a[10]=;

3、利用strcpy

char a[10]; strcpy(a, "hello");

【注意】不能使用關係運算子「==」來比較兩個字串,只能用strcmp() 函式來處理。

在c語言中把字串當作陣列來處理,因此,對字串的限制方式和對陣列的一樣,特別是,它們都不能用c語言的運算子進行複製和比較操作。

直接嘗試對字串進行複製或比較操作會失敗。例如,假定str1和str2有如下宣告:

char str1[10], str2[10];

利用=運算子來把字串複製到字元陣列中是不可能的:

str1 = "abc";     /*** wrong ***/

str2 = str1;       /*** wrong ***/

c語言把這些語句解釋為乙個指標與另乙個指標之間的(非法的)賦值運算。但是,使用=初始化字元陣列是合法的:

char str1[10] = "abc";

這是因為在宣告中,=不是賦值運算子。

試圖使用關係運算子或判等運算子來比較字串是合法的,但不會產生預期的結果:

if (str1==str2) ...    /*** wrong ***/

這條語句把str1和str2作為指標來進行比較,而不是比較兩個陣列的內容。因為str1和str2有不同的位址,所以表示式str1 == str2的值一定為0。

字元陣列的初始化

如:char  c_write_data[100] =

字元指標的初始化與賦值

如:char  *carrige_return = "\n";

python基礎知識 字串

1 字串的格式化 python 將若干值插入到帶有 標記的字串中,實現動態地輸出字串。格式 s str s s str 1,str 2 例如 str 0 i str 1 love str 2 china format s s s str 0,str 1,str 2 print format ilov...

基礎知識 字串python

len pbr out 3 len repr pbr out 5x iam y pan print x,y 法一,注意print 預設連續輸出兩個字串,其中間用空格隔開 x y 法二out iam pan 兩個字串之間有空格 iampana i am allen 這裡開頭有4個空格out i am ...

Python基礎知識 字串(一)

字串是python中非常基礎,非常常用的一種資料型別。從這節開始介紹python的字串的使用方法。ss hello,world 定義乙個字串 ss 1 使用索引,獲取某個字元,結果為 e ss 0 2 使用切片,獲取乙個子字串。結果為 he ss 3 可以使用負數索引,並且可以使用預設索引,預設時表...