日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ 字符串合并_C语言输入字符和字符串(所有函数大汇总)

發布時間:2023/12/13 c/c++ 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ 字符串合并_C语言输入字符和字符串(所有函数大汇总) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言輸入字符和字符串(所有函數大匯總)

C語言有多個函數可以從鍵盤獲得用戶輸入,它們分別是:

  • scanf():和 printf() 類似,scanf() 可以輸入多種類型的數據。
  • getchar()、getche()、getch():這三個函數都用于輸入單個字符。
  • gets():獲取一行數據,并作為字符串處理。


scanf() 是最靈活、最復雜、最常用的輸入函數,上節我們已經進行了講解,本節接著講解剩下的函數,也就是字符輸入函數和字符串輸入函數。

輸入單個字符

輸入單個字符當然可以使用 scanf() 這個通用的輸入函數,對應的格式控制符為%c,上節已經講到了。本節我們重點講解的是 getchar()、getche() 和 getch() 這三個專用的字符輸入函數,它們具有某些 scanf() 沒有的特性,是 scanf() 不能代替的。

1) getchar()

最容易理解的字符輸入函數是 getchar(),它就是scanf("%c", c)的替代品,除了更加簡潔,沒有其它優勢了;或者說,getchar() 就是 scanf() 的一個簡化版本。
下面的代碼演示了 getchar() 的用法:

#include int main(){ char c; c = getchar(); printf("c: %c", c); return 0;}

輸入示例:

@↙c: @

你也可以將第 4、5 行的語句合并為一個,從而寫作:

char c = getchar();

2) getche()

getche() 就比較有意思了,它沒有緩沖區,輸入一個字符后會立即讀取,不用等待用戶按下回車鍵,這是它和 scanf()、getchar() 的最大區別。請看下面的代碼:

#include #include int main(){ char c = getche(); printf("c: %c", c); return 0;}

輸入示例:

@c: @

輸入@后,getche() 立即讀取完畢,接著繼續執行 printf() 將字符輸出,所以沒有按下回車鍵程序就運行結束了。
注意,getche() 位于 conio.h 頭文件中,而這個頭文件是 Windows 特有的,Linux 和 Mac OS 下沒有包含該頭文件。換句話說,getche() 并不是標準函數,默認只能在 Windows 下使用,不能在 Linux 和 Mac OS 下使用。

3) getch()

getch() 也沒有緩沖區,輸入一個字符后會立即讀取,不用按下回車鍵,這一點和 getche() 相同。getch() 的特別之處是它沒有回顯,看不到輸入的字符。所謂回顯,就是在控制臺上顯示出用戶輸入的字符;沒有回顯,就不會顯示用戶輸入的字符,就好像根本沒有輸入一樣。
回顯在大部分情況下是有必要的,它能夠與用戶及時交互,讓用戶清楚地看到自己輸入的內容。但在某些特殊情況下,我們卻不希望有回顯,例如輸入密碼,有回顯是非常危險的,容易被偷窺。
getch() 使用舉例:

#include #include int main(){ char c = getch(); printf("c: %c", c); return 0;}

輸入@后,getch() 會立即讀取完畢,接著繼續執行 printf() 將字符輸出。但是由于 getch() 沒有回顯,看不到輸入的@字符,所以控制臺上最終顯示的內容為c: @。
注意,和 getche() 一樣,getch() 也位于 conio.h 頭文件中,也不是標準函數,默認只能在 Windows 下使用,不能在 Linux 和 Mac OS 下使用。

對三個函數的總結

函數緩沖區頭文件回顯適用平臺getchar()有stdio.h有Windows、Linux、Mac OS 等所有平臺getche()無conio.h有Windowsgetch()無conio.h無Windows

輸入字符串

輸入字符串當然可以使用 scanf() 這個通用的輸入函數,對應的格式控制符為%s,上節已經講到了;本節我們重點講解的是 gets() 這個專用的字符串輸入函數,它擁有一個 scanf() 不具備的特性。
gets() 的使用也很簡單,請看下面的代碼:

#include int main(){ char author[30], lang[30], url[30]; gets(author); printf("author: %s", author); gets(lang); printf("lang: %s", lang); gets(url); printf("url: %s", url); return 0;}

運行結果:

YanChangSheng↙author: YanChangShengC-Language↙lang: C-Languagehttp://c.biancheng.net http://biancheng.net↙url: http://c.biancheng.net http://biancheng.net

gets() 是有緩沖區的,每次按下回車鍵,就代表當前輸入結束了,gets() 開始從緩沖區中讀取內容,這一點和 scanf() 是一樣的。gets() 和 scanf() 的主要區別是:

  • scanf() 讀取字符串時以空格為分隔,遇到空格就認為當前字符串結束了,所以無法讀取含有空格的字符串。
  • gets() 認為空格也是字符串的一部分,只有遇到回車鍵時才認為字符串輸入結束,所以,不管輸入了多少個空格,只要不按下回車鍵,對 gets() 來說就是一個完整的字符串。


也就是說,gets() 能讀取含有空格的字符串,而 scanf() 不能。

總結

C語言中常用的從控制臺讀取數據的函數有五個,它們分別是 scanf()、getchar()、getche()、getch() 和 gets()。其中 scanf()、getchar()、gets() 是標準函數,適用于所有平臺;getche() 和 getch() 不是標準函數,只能用于 Windows。
scanf() 是通用的輸入函數,它可以讀取多種類型的數據。
getchar()、getche() 和 getch() 是專用的字符輸入函數,它們在緩沖區和回顯方面與 scanf() 有著不同的特性,是 scanf() 不能替代的。
gets() 是專用的字符串輸入函數,與 scanf() 相比,gets() 的主要優勢是可以讀取含有空格的字符串。
scanf() 可以一次性讀取多份類型相同或者不同的數據,getchar()、getche()、getch() 和 gets() 每次只能讀取一份特定類型的數據,不能一次性讀取多份數據。

總結

以上是生活随笔為你收集整理的c++ 字符串合并_C语言输入字符和字符串(所有函数大汇总)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。