最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c語(yǔ)言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解

 更新時(shí)間:2018年07月20日 08:51:46   作者:cowoc1961331326  
今天小編就為大家分享一篇c語(yǔ)言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

解釋

gets(s)函數(shù)與 scanf("%s",&s) 相似,但不完全相同,使用scanf("%s",&s) 函數(shù)輸入字符串時(shí)存在一個(gè)問(wèn)題,就是如果輸入了空格會(huì)認(rèn)為字符串結(jié)束,空格后的字符將作為下一個(gè)輸入項(xiàng)處理,但gets()函數(shù)將接收輸入的整個(gè)字符串直到遇到換行為止。

1.scanf()

所在頭文件:stdio.h

語(yǔ)法:scanf("格式控制字符串",變量地址列表);

接受字符串時(shí):scanf("%s",字符數(shù)組名或指針);

2.gets()

所在頭文件:stdio.h

語(yǔ)法:gets(字符數(shù)組名或指針);

兩者在接受字符串時(shí):

1.不同點(diǎn):

scanf不能接受空格、制表符Tab、回車等;

而gets能夠接受空格、制表符Tab和回車等;

2.相同點(diǎn):

字符串接受結(jié)束后自動(dòng)加'\0'。

例1:

#include <stdio.h>
int main()
{
  char ch1[10],ch2[10];

  scanf("%s",ch1);
  gets(ch2);

return 0;
}

依次鍵入asd空格fg回車,asd空格fg回車,則ch1="asd\0",ch2="asd fg\0"。

程序2:

#include <stdio.h>
int main()
{
char str1[20], str2[20];
scanf("%s",str1);
printf("%s\n",str1); 
scanf("%s",str2);
printf("%s\n",str2);
return 0;
}

程序的功能是讀入一個(gè)字符串輸出,再讀入一個(gè)字符串輸出??晌覀儠?huì)發(fā)現(xiàn)輸入的字符串中不能出現(xiàn)空格,例如:

測(cè)試一輸入:

Hello word(enter)

輸出:

Hello
world!

程序3:

#include <stdio.h>
int main()
{
char str1[20], str2[20];
gets(str1);
printf("%s\n",str1); 
gets(str2);
printf("%s\n",str2);
return 0;
}

測(cè)試:

Helloworld! [輸入]
Helloworld! [輸出]
12345 [輸入]
12345 [輸出]

【分析】顯然與上一個(gè)程序的執(zhí)行情況不同,這次程序執(zhí)行了兩次從鍵盤的讀入,而且第一個(gè)字符串取了Helloworld! 接受了空格符,而沒(méi)有像上一個(gè)程序那樣分成了兩個(gè)字符串!所以如果要讀入一個(gè)帶空格符的字符串時(shí)因該用gets(), 而不宜用scanf()!

以上這篇c語(yǔ)言獲取用戶輸入字符串是scanf和gets的區(qū)別詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • VC創(chuàng)建DLL動(dòng)態(tài)鏈接庫(kù)的方法

    VC創(chuàng)建DLL動(dòng)態(tài)鏈接庫(kù)的方法

    這篇文章主要介紹了VC創(chuàng)建DLL動(dòng)態(tài)鏈接庫(kù)的方法,實(shí)例分析VC創(chuàng)建動(dòng)態(tài)鏈接庫(kù)的完整步驟,需要的朋友可以參考下
    2015-05-05
  • VS2019中QT連接及使用的方法步驟

    VS2019中QT連接及使用的方法步驟

    這篇文章主要介紹了VS2019中QT連接及使用的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C++實(shí)現(xiàn)LeetCode(189.旋轉(zhuǎn)數(shù)組)

    C++實(shí)現(xiàn)LeetCode(189.旋轉(zhuǎn)數(shù)組)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(189.旋轉(zhuǎn)數(shù)組),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++中如何將operator==定義為類的成員函數(shù)

    C++中如何將operator==定義為類的成員函數(shù)

    這篇文章主要介紹了C++中如何將operator==定義為類的成員函數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C語(yǔ)言中#pragma預(yù)處理指令的使用

    C語(yǔ)言中#pragma預(yù)處理指令的使用

    在所有的預(yù)處理指令中,#pragma指令可能是最復(fù)雜的了,它的作用是設(shè)定編譯器的狀態(tài)或者是指示編譯器完成一些特定的動(dòng)作,本文主要介紹了C語(yǔ)言中#pragma預(yù)處理指令的使用,感興趣的可以了解一下
    2023-12-12
  • C++實(shí)現(xiàn)LeetCode165.版本比較)

    C++實(shí)現(xiàn)LeetCode165.版本比較)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode165.版本比較),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實(shí)現(xiàn)小型復(fù)數(shù)計(jì)算器

    C++實(shí)現(xiàn)小型復(fù)數(shù)計(jì)算器

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)小型復(fù)數(shù)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語(yǔ)言實(shí)現(xiàn)bmp圖像平移操作

    C語(yǔ)言實(shí)現(xiàn)bmp圖像平移操作

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)bmp圖像平移操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)

    C++實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)

    本文給大家分享的是使用C++實(shí)現(xiàn)的簡(jiǎn)單的學(xué)生管理系統(tǒng)的代碼,主要是通過(guò)鏈表來(lái)實(shí)現(xiàn),非常簡(jiǎn)潔,有需要的小伙伴可以參考下。
    2015-07-07
  • Qt實(shí)現(xiàn)高精度定時(shí)器

    Qt實(shí)現(xiàn)高精度定時(shí)器

    這篇文章主要為大家詳細(xì)介紹了Qt實(shí)現(xiàn)高精度定時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論

新绛县| 申扎县| 天镇县| 盐城市| 华亭县| 曲沃县| 喀喇沁旗| 井陉县| 青田县| 赤壁市| 阳新县| 普安县| 疏附县| 班戈县| 金平| 中卫市| 镇巴县| 突泉县| 新丰县| 筠连县| 绥中县| 区。| 陆川县| 同心县| 辽宁省| 新郑市| 古蔺县| 张家口市| 浦城县| 林芝县| 克拉玛依市| 蓝山县| 甘孜| 禹州市| 镇原县| 静安区| 怀远县| 延安市| 新丰县| 汨罗市| 文山县|