C語言 字串相關的簡單知識

2021-09-26 04:47:07 字數 1383 閱讀 4397

什麼是字串

由於字元組成的串型資料結構,以'\0'作為結束標誌。
字串為什麼重要:

我們看到的都是字元型資料,而計算機只能針對數值型資料進行運算,因此我們需要非常頻繁的把資料轉換成字串,字串轉換成資料。
字串存在的形式:

1.字元陣列:

char arr[5] = ; // error

char arr[6] = ;

一般儲存在棧,也可以儲存在堆。

注意:為'\0'預留位置!!!

2.字串字面值:"由雙綽號包括的若干個字元" char* str1 ="hehe"; printf("%s\n",str1);

1、以位址存在,const char* str。必須使用指標指向

2、它儲存在唯讀段|**段,不能修改,否則會產生段錯誤。

3、自帶'\0';

一般情況都使用字串字面值來初始化字元陣列,編譯器會把唯讀段中的字串拷貝乙份到棧,並且包括'\0'。

char str="hehe";

字串的輸出:

printf 	%s 	字串首位址

puts 字串首位址,不需要佔位符,自動換行。

putchar 顯示乙個字元

fprintf(stdout,"%s","hehe");

字串的輸入:

scanf %s 	不能輸入帶空格的字串

gets 不檢查字串的長度,可能會造成段錯誤

fgets 可以指定接收的字串長度,實際只能接收size-1 字元,它會為'\0'預留乙個位置,

當輸入的字元數不足size-1 時會邊回車符一起接收。可能輸入緩衝區會殘留資料。

字串的操作:

c語言中沒有處理字串的語句,只能使用標準庫中所提供的函式進行操作。

string.h

strlen 計算字串的長度,不包括'\0'

strcpy 字串拷貝,使用字串字面值給字元陣列賦值只能在定義時使用,之後的賦值必須使用strcpy函式。

strcat 在str1後追加str2,連線

strcmp 按照字典序比較兩個字串,

str1 > str2 結果為1

str1 < str2 結果為-1

str1 = str2 結果為0

atoi/atol/atoll 字串轉換為整數

strstr 返回str2在str1中首次出現的位置,如果返回空表示不存在。

memset/memcpy(記憶體拷貝)/strchr

sprintf/sscanf(用於拼接/解析字串)

C語言字串相關知識點

c語言字串相關知識點 1.strcpy str1,str2 str1的空間應該不小於 str2 的空間 如果不能滿足,在函式進行中可能發生越界,而導致程式崩潰 2.char ar 51 grammering club.上述定義的字串,使用函式size of ar 所測試的是字串 ar所佔空間大小,使...

c語言字串相關

在c語言中,有兩個函式可以在控制台 顯示器 上輸出字串,分別是 在c語言中,有兩個函式可以讓使用者從鍵盤上輸入字串,它們分別是 但是,scanf 和 gets 是有區別的 strcat 是 string catenate 的縮寫,意思是把兩個字串拼接在一起,語法格式為 strcat arraynam...

字串相關知識

1.字串長度 strlen 求字串長度時,遇到 0 就停下,前面所經過的字元數,就是字串的長度,不包括 0 注意 該函式的返回值為無符號整數。例子 int main else return 0 上述 輸出為什麼呢?因為返回值無符號數,無符號數 無符號數永遠是大於等於0的,所以輸出了if分支的語句。2...