字串:實質就是多個字串行,有多個字元組成
c語言中是沒有string這種型別的,通常在c中是用字元陣列來儲存字串的。字串可以看做乙個特殊的字元陣列,為了和普通的陣列分開,故在字串的尾部加上乙個結束標誌「\0」,「\0」是乙個ascii碼值為0的字元,是乙個空的操作符,表示什麼也沒有,所以採用字元陣列存放字串,賦值時就應該包含結束標誌「\0」。
字串的初始化:
char a = 「123」; 和 char a = ;的區別:
「123」其實是由』1』、』2』、』3』、』\0』組成
「123」的儲存分布
字串的輸出」%s」,』\0』是不會輸出的
#includeint main()
//字串初始化
void test2()
; char name3[8] = ;
char name4[8] = ; //最好不要這樣寫,沒有\0結尾不是字串
char name5 = ; //不是字串,只能說是普通字元陣列
}void test()
#includeint main()
;
printf("%s\n",name); //輸出結果it
printf("%s\n",name2); //輸出結果itok,記憶體分析如下:
%s表示期望輸出乙個字串,因此printf函式會從b的首位址開始按順序輸出字元,一直到\0字元為止,因為\0是字串的結束標記。所以,如果想要建立乙個字串,記得加上結束符\0
常用字串處理函式:
strlen:計算字串長度 宣告在#include中計算的是字元數,並不是字數,乙個漢字算作3個字元,計算的字元不包括\0,從某個位址開始數字符的個數,直到遇到\0為止
/*
strlen函式:計算字串長度
1.計算的是字元數,並不是字數。乙個漢字算作3個字元
2.計算的字元不包括\0
3.從某個位址開始數字符的個數,直到遇到\0為止
*/// strlen函式宣告在string.h檔案中
#include #include int main()
;
int size = strlen(name2);
printf("%d\n", size);
*/char name = "itcast";
//printf("%s\n", name);
printf("%c\n", name[3]);
return 0;
}
字串的輸出:可以使用stdio.h中兩個函式來輸出字串,分別是printf和puts函式
printf函式:用%s表示需要輸出乙個字串
char a[3] = ;
printf("%s",a);
puts函式:puts函式輸出乙個字串後會自動換行, puts函式一次只能輸出乙個字串,printf函式則可以同時輸出多個字串
字串的輸入:
stdio.h中有2個函式可以用來接收使用者輸入的字串,分別是scanf和gets
scanf函式:
char a[10];
scanf("%s",a);
scanf函式會從a的首位址開始存放使用者輸入的字元,存放完畢後,系統會自動在尾部加上乙個結束標記\0,注意,不要寫成scanf("%s", &a),因為a已經代表了陣列的位址,沒必要再加上&這個位址運算子。
gets函式:
char a[10];
gets(a);
gets跟scanf一樣,會從a的首位址開始存放使用者輸入的字元,存放完畢後,系統會自動在尾部加上乙個結束標記\0。
gets一次只能讀取乙個字串,scanf則可以同時讀取多個字串
gets可以讀入包含空格、tab的字串,直到遇到回車為止;scanf不能用來讀取空格、tab
字串陣列:
使用場合:
一維字元陣列中存放乙個字串,比如乙個名字char name[20] = "mj"
如果要儲存多個字串,比如乙個班所有學生的名字,則需要二維字元陣列,char names[15][20]可以存放15個學生的姓名(假設姓名不超過20字元)
如果要儲存兩個班的學生姓名,那麼可以用三維字元陣列char names[2][15][20]
初始化char names[2][10] = , };
char names2[2][10] = , };
char names3[2][10] = ;
#include int main()
;
//printf("%s\n", names[0]);
//printf("%c\n", names[0][3]);
char names2[2][10] =,};
return 0;
}
C語言字串總結
c語言中沒有設定字串變數,所以只能用字元陣列來儲存。1,它符合陣列的一切操作 1 字元陣列的定義 即陣列的定義 char c c i c c a c m c c a c c b c o c y 2 字元陣列的初始化 即陣列的初始化 char c 其形式同 int a 是一樣的。3 字元陣列的引用 即...
C語言字串總結
c語言字元陣列的初始化 1 字元陣列的定義與初始化 1 第一種方式 char str 10 即把10個字元分別賦給str 0 到str 9 10個元素 注意 如果花括號中提供的字元個數大於陣列長度,則按語法錯誤處理 若小於陣列長度,則只將這些字元陣列中前面那些元素,其餘的元素自動定為空字元 即 0 ...
C語言總結 字串
字串是用字元陣列儲存的,並且最後一位必須是 0 編譯器會把這個字元陣列看做是char 型別的指標。操作 char p p abc char ch ch abc 1 char str 8 abcdefg 會把這幾個字元複製到這個字元陣列中 他的儲存方式為 如果字串不夠7個就會把剩餘的單元填 0 如果超...