什麼是字串
由於字元組成的串型資料結構,以'\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...