字符串函數

1.字符串輸入

gets()函數

從系統的標準輸入設備(通常是鍵盤)獲取一個字符串,當檢測到換行符表示輸入結束。例子:

Snip20170313_69.png

fgets()函數

gets()的一個不足之處是不檢測預留存儲空間是否能夠容納實際輸入的數據。是不安全的,此函數和gets()區別主要下面三點:

  • 第二個參數說明最大讀入字符數,如果這個參數值為n,那么此函數讀取最多到n-1個。
  • gets()讀到換行符會存到字符串中。
  • 第三個參數說明讀哪個文件,從鍵盤讀取時可以使用stdin。

scanf()函數

scanf 和gets()的區別是何時結束字符串的讀取:scanf會根據指定的字符串寬度(比如%10s,會讀入10個字符)或者直到遇到第一個空白字符,兩者先滿足就那種方式終止。

2.字符串的輸出

puts()函數

與printf()不同,他顯示字符串后會在結尾自動加上換行符,輸入的地址,是put函數的起始地址,然后遇到空字符就停下來。

fputs()函數

fputs()與puts不同的地方如下:

  • 第二個參數說明寫的文件,可以使用stdout作為參數進行輸出顯示
  • 與puts函數不同,不會自動添加換行符。

printf()函數

沒有puts()方便,但是可以格式化多種數據類型主要區別:
printf不會自動的在新行上輸出每個字符串,需要指名需要輸出的地方。

3.字符串函數

strlen()函數

可以得到字符串長度的函數,也可以截取字符串,例子如下:

Snip20170313_71.png

strcat()函數

接受兩個字符串,把后面一個拷貝拼接在前一個字符串的末尾處。

strncat()函數

strcat()函數不檢查第一個數組是否有足夠的空間容納第二個字符串,strncat()會有個參數來指名最多允許添加的字符的數目。

strcmp ()函數

比較字符串大小,只看第一個空字符串之前的部分。返回值是0,1,-1。

strncmp()變種

有第三個參數可以指定前兩個字符串比較到哪個位置。

strcpy()和strncpy() 函數

strcpy()函數把字符串從零時數組復制到一個永久的目的地。
strcpy的高級特性:第一個參數是一個字符的地址,不需要指向數組開始。
同樣的,strcpy不檢查目標字符串是否可以容納下源字符串,strncpy()提供第三個參數來解決這個問題。

4.把字符串轉為數字

atoi(),atol(),atof()分別把數字的字符串表示轉換為int,long和double形式。strtol(),strtoul()和strtod()函數分別把數字的字符串表示轉換為long,unsigned long和double形式。
以上內容為本人學習時的總結,后期會繼續修改或者增加。

參考:

  • 中文版《 C Primer Plus》(第五版)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容