C語言 字串

2021-09-02 20:34:26 字數 2821 閱讀 4544

字串是由字元構建而成的序列結構,'\0'是它的結束標誌。
1.字串字面值

被雙引號包括起來的若干個字元,有乙個隱藏的』\0』,這種字串以位址的形式存在在**中,並且該字串儲存在唯讀區,一旦定義,不能修改。

建立方法:

char a = "hello";

2.字元陣列

char型別的陣列,裡面儲存的是ascii值,要注意為』\0』留位置,與字串字面值相比,字元陣列可以根據需要進行修改。

建立方法:

char b = ;

注意,這兩種建立方法得到的字串長度不一樣,第一種方法建立的字串長度為6,第二種方法建立的字串長度為5,因為第一種方法最後還有乙個』\0』,而第二個方法的』\0』的位置被』o』占用了,所以長度只有5,這樣會有乙個危險,就是如果後面還有乙個字元陣列c建立,而我只想顯示b陣列裡的東西,但因為沒有』\0』結尾,會把後面c裡面的字元也列印出來。

如:

#include int main();

char c = ;

printf("%s",a);

printf("%s",b);

return 0;

}

輸出的結果是:

hello;

helloworld;

1.int getchar(void)(字元的輸入)

功能:從鍵盤接收乙個字元。

例子:

#include #include int main()
2.scanf("%s",有效的陣列名或者指標變數名)

功能:接收使用者輸入的資料,缺點是不能接收空格字元,如果有有空格,則剩餘字元會影響下次的輸入。

例子:

#include int main()
3.char *gets(char *s);

功能:可以接收到空格,但它會無限的接收字元直到遇到回車符,但可能會造成段錯誤或棧崩潰

例子:

#include int main()
4.char *fgets(char *s,int size,stdin);

功能:鍵盤讀取到乙個指定長度的字串

s:儲存字串的首位址

size:字串的長度(包含』0』),最多接收size - 1個字元,它會為』\0』預留乙個位置

注意:如果字元中有』\n』字元,需要把』\n』去掉

例子:

#include int main()
輸出:hello
1.size_t strlen(const char *s)

功能:求字串的長度,不包括』\0』

例子:

#include #include int main()
輸出:11
2.char *strcat(char *dest, const char *src);

功能:在字串dest後面追加字串src,即把字串src接在字串dest後面

例子:

#include #include int main()
輸出:helloworld
3.char *strncat(char *dest, const char *src, size_t n);

功能:將字串src的前n個字元接到字串dest後面

例子:

#include #include int man()
輸出:helloworl
4.char *strcpy(char *dest, const char *src);

功能:將src字串的記憶體拷貝到dest中,即dest = src

例子:

#include #include int main()
輸出:hello world
5char *strncpy(char *dest, const char *src, size_t n);

功能:將src字串的前n個字元拷貝到dest中

例子:

#include #include int main()
輸出:hello
6.int strcmp(const char *s1, const char *s2);

功能:按照字典序,比較兩個字串。

s1 > s2 正

s1 = s2 0

s1 < s2 負

從第乙個開始比較,乙個乙個往後比,直到比出大小。

例子:

#include #include int main()
輸出:-1
7.int strncmp(const char *s1, const char *s2, size_t n);

功能:將s2前n個字元拿來跟s1比較

#include #include int main()
輸出:0
8.void *memcpy(void *dest, const void *src, size_t n);
#include #include int main()

C語言字串 字串排序

本題要求編寫程式,讀入5個字串,按由小到大的順序輸出。輸入為由空格分隔的5個非空字串,每個字串不包括空格 製表符 換行符等空白字元,長度小於80。按照以下格式輸出排序後的結果 after sorted 每行乙個字串 red yellow blue green white after sorted b...

C語言 字串

char str lnj 字串變數 l n j 0 printf str size lu n sizeof str 字元陣列 這個並不是字串,而是字元陣列 char charvalues 如何輸出字串變數,s str 陣列的名稱,陣列的名稱就是陣列的位址 s的原理,從傳入的 位址 開始逐個取出,直到...

c語言字串

字串 字串1 概念 1.1 定義 1.1.1 用雙引號引起來的多個字元 1.2 兩個連續的雙引號中間是空格或回車,則兩個字串自動連在一起 1.3 遇見 0字串結束,0可以提前終止字串 1.4 初始化 1.4.1 char str 6 1.4.2 char str hello 編譯時自動給 加6 1....