C 簡短筆記 關於字元陣列

2021-09-27 07:57:39 字數 1143 閱讀 1993

關於字元陣列:

len1 = strlen(str1);

len2 = strlen(str2);

int i;

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

str3[i] = 『\0』;

1、初始化:

(1)可以像普通陣列一樣,乙個乙個賦值進行初始化

(2)也可以通過直接賦值字串來初始化(僅限於初始化的時候);

2、字元陣列的輸入輸出:

輸入:scanf getchar gets(fgets)

輸出:printf putchar puts

(1)scanf 在%c時可以識別空格和換行並將其輸入

在%s時通過空格或換行來識別乙個字串的結束

(2)getchar/putchar

分別用來輸入和輸出單個字元(getchar不會自動新增\0,需要輸出記得自己加)

(3)gets/puts

gets輸入一行字串(識別換行符作為輸入結束)(fgets會把\n加在陣列中!)

因此scanf完乙個整數後,如果要使用gets,應該先用getchar接收換行符

凡是想用fgets,一定要注意前面有沒有換行符!

puts用來輸出字串,並緊跟乙個換行

3、字元陣列的存放方式

字元陣列的末尾有個空字元\0

在使用gets和scanf輸入字串時會自動新增在輸入的字串後面,並占用乙個字元位

(字元陣列的長度一定要比實際儲存數多1)

puts和printf就是通過識別\0作為字串結尾來輸出

如果不是使用scanf的%s或者gets函式輸出字串,記得在輸出的每個字元後加\0

4、string.h標頭檔案

(1)strlen()

得到字元陣列中第乙個\0前的字元的個數

(2)strcpy()

把字元陣列2複製給字元陣列1,包括\0

strcpy(字元陣列1,字元陣列2)

(3)strcat()

把字元陣列2接到字元陣列1後面

(4)sscanf()/sprintf()

sscanf(str,"%d",&n);把str寫入n

sprintf(str,"%d",n);把n寫入str

還可以有%s %f %c等格式,都能適用

C語言中關於字元陣列和指標陣列

做筆試題目的時候,碰到字元陣列初始化的問題,居然一下子懵了。在c語言中儲存字串有兩種方法 字元陣列和字串指標 這兩者的儲存位置不同,首先字元陣列 區域性變數 是儲存在棧中的 指標指向字串時,則包括了兩部分,指標本身,儲存在棧中 區域性指標變數 字串本身儲存在 段 gcc中是這樣 基於上面一點就會產生...

關於字元陣列 和 字串比較 C

char acstr aaaaa 這個是字元陣列,只含有5個字元 char pcstr aaaaa 這個是字串,含有6個字元,即5個a加乙個結束符 0 輸出的結果 strlen 長度都是5,所以即便是字串,最後取長度的時候,也不考慮 0 strlen 計算字串長度,忽略結束符 0 char p he...

關於字元陣列和字串陣列

首先看2個東東 char str2 這2個哥們兒長的很像,可實際的涵義確差老了。2個都是c裡面的東東。str1叫字元陣列,首先它是乙個陣列,5個元素但長度為4 加上個 0 其實就相當於 abcd 看看怎麼變過來的 首先變為char str1 abcd 然後把括號去掉就是 char str1 abcd...