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

解決C語言中使用scanf連續(xù)輸入兩個(gè)字符類型的問題

 更新時(shí)間:2020年12月10日 09:59:21   作者:0點(diǎn)51 勝  
這篇文章主要介紹了解決C語言中使用scanf連續(xù)輸入兩個(gè)字符類型的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

昨天用C編程,遇到一個(gè)關(guān)于scanf的細(xì)節(jié)問題,假如運(yùn)行如下程序:

#include<stdio.h>
int main()
{
 char ch1,ch2;
 printf("Input for ch1:/n");
 scanf("%c",&ch1);
 printf("ch1=%c/n",ch1);
 printf("Input for ch2:/n");
 scanf("%c",&ch2);
 printf("ch2=%c/n",ch2);
}

表面上看這段程序是沒有錯(cuò)的,也可以運(yùn)行,但運(yùn)行過程中到第二個(gè)scanf輸入值給ch2時(shí),程序不會(huì)停止,而是直接運(yùn)行到最后一個(gè)printf !

為什么?當(dāng)時(shí)百思不得其解。。。

今天上網(wǎng)查了下才知道,原來scanf是從標(biāo)準(zhǔn)輸入緩沖區(qū)中讀取輸入的數(shù)據(jù),而%c的字符輸入格式會(huì)接收回車字符,在輸入第一個(gè)scanf時(shí)輸入字符后按 回車結(jié)束,輸入緩沖中保存了這個(gè)回車符,遇到第二個(gè)scanf時(shí),它自動(dòng)把這個(gè)回車符賦給了ch2。

而如果第二個(gè)scanf的輸入格式不是%c時(shí),由于格 式不匹配,這個(gè)回車符會(huì)被自動(dòng)忽略,所以只有在連續(xù)輸入兩個(gè)%c的格式時(shí)才會(huì)出現(xiàn)這樣的問題!

解決辦法:(二辦法任選其一)

1。清空輸入緩沖區(qū)

第一個(gè)scanf后加入語句:

fflush(stdin); //C語言清空輸入緩沖區(qū)函數(shù)

2。格式控制中加入空格

將第二個(gè)scanf改為:

scanf(" %c",&ch2);//在%號(hào)前面加一個(gè)空格

scanf格式輸入時(shí)要求輸入格式與格式控制符中的完全一樣(如:scanf("abcd%c",&ch);輸入時(shí)必須輸入abcde,ch得到的值為e)空格可以抵消前面輸入的回車符。

補(bǔ)充知識(shí):利用C語言實(shí)現(xiàn):輸入兩個(gè)字符串,統(tǒng)計(jì)一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)。

輸入兩個(gè)字符串,統(tǒng)計(jì)一個(gè)字符串在另一個(gè)字符串中出現(xiàn)的次數(shù)

例如,asdfgasfgasf,as,則輸出3

編程環(huán)境為codeblocks,編譯器是GUN-GCC,操作系統(tǒng)是win7-64位

分析:此代碼主要運(yùn)用了一個(gè)算法,是字符串匹配的樸素模式匹配算法。看懂算法之后再來讀代碼就沒有什么壓力了。

代碼如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
 char S[100],T[20];
 char ch1,ch2;
 printf("請(qǐng)輸入主字符串:\n");
 ch1=getchar();
 int i=0;
 while(ch1!='\n')
 {
  S[i]=ch1;
  i++;
  ch1=getchar();
 }
 
 printf("請(qǐng)輸入要篩選的字符串:\n");
 ch2=getchar();
 int j=0;
 while(ch2!='\n')
 {
  T[j]=ch2;
  j++;
  ch2=getchar();
 }
 
 int m,n;//m為S的下標(biāo),n為T的下標(biāo)
 m=0;
 n=0;
 int num=0;//num用于記錄選定單詞出現(xiàn)的次數(shù)
 while(m<=i&&n<=j)
 {
  if(S[m]==T[n])
  {
   m++;
   n++;
  }
  else
  {
   m=m-n+1;
   n=0;
  }
  if(n==j)
  {
   num++;
  }
 }
 if(m==i+1)
  {
   printf("出現(xiàn)的次數(shù)是%d",num);
  }
}

以上這篇解決C語言中使用scanf連續(xù)輸入兩個(gè)字符類型的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于matlab MFCC+GMM的安全事件聲學(xué)檢測(cè)系統(tǒng)

    基于matlab MFCC+GMM的安全事件聲學(xué)檢測(cè)系統(tǒng)

    這篇文章主要為大家介紹了基于matlab MFCC+GMM的安全事件聲學(xué)檢測(cè)系統(tǒng)實(shí)現(xiàn)及源碼示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動(dòng)補(bǔ)全、懸停提示功能

    VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動(dòng)補(bǔ)全、懸停提示功能

    這篇文章主要介紹了VSCode插件開發(fā)全攻略之跳轉(zhuǎn)到定義、自動(dòng)補(bǔ)全、懸停提示,需要的朋友可以參考下
    2020-05-05
  • C++面試常見問題整理匯總

    C++面試常見問題整理匯總

    這篇文章主要介紹了C++面試常見問題整理,匯總了C++基本語法、面向?qū)ο蟾鞣N概念與易錯(cuò)點(diǎn),需要的朋友可以參考下
    2017-05-05
  • VScode+ESP32簡(jiǎn)單環(huán)境搭建

    VScode+ESP32簡(jiǎn)單環(huán)境搭建

    本文章向大家介紹ESP32-C3搭建環(huán)境教程,主要包括ESP32-C3搭建環(huán)境教程使用實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • C語言結(jié)構(gòu)體版學(xué)生成績(jī)管理系統(tǒng)

    C語言結(jié)構(gòu)體版學(xué)生成績(jī)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言結(jié)構(gòu)體版的學(xué)生成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C++選擇排序算法實(shí)例

    C++選擇排序算法實(shí)例

    這篇文章主要介紹了C++選擇排序算法實(shí)例,本文先是介紹了什么是選擇排序,然后給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之優(yōu)先隊(duì)列

    C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之優(yōu)先隊(duì)列

    這篇文章主要介紹了C++高級(jí)數(shù)據(jù)結(jié)構(gòu)之優(yōu)先隊(duì)列,文章圍繞主題的相關(guān)資料展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • C語言控制進(jìn)程之進(jìn)程等待詳解

    C語言控制進(jìn)程之進(jìn)程等待詳解

    這篇文章主要介紹了C語言控制進(jìn)程之進(jìn)程等待即回收子進(jìn)程的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 使用c語言輸出楊輝三角形的簡(jiǎn)單方法

    使用c語言輸出楊輝三角形的簡(jiǎn)單方法

    這篇文章主要給大家介紹了關(guān)于如何使用c語言輸出楊輝三角形的簡(jiǎn)單方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • C語言中static與extern關(guān)鍵字的深入解析

    C語言中static與extern關(guān)鍵字的深入解析

    在C語言編程中,static和extern是兩個(gè)非常重要的關(guān)鍵字,它們各自有著獨(dú)特的用途,本文將深入探討這兩個(gè)關(guān)鍵字的工作原理、底層實(shí)現(xiàn)機(jī)制以及在實(shí)際開發(fā)中的應(yīng)用,感興趣的小伙伴跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09

最新評(píng)論

礼泉县| 天全县| 集贤县| 嵊泗县| 长治市| 兰考县| 布尔津县| 多伦县| 修武县| 小金县| 中阳县| 凌海市| 辰溪县| 确山县| 乐陵市| 安庆市| 临颍县| 泗水县| 宿迁市| 南昌县| 莆田市| 施秉县| 北海市| 洪江市| 湖北省| 乌拉特后旗| 海盐县| 玉山县| 休宁县| 白水县| 柘城县| 台东县| 洪湖市| 景宁| 永新县| 天台县| 始兴县| 江城| 百色市| 板桥市| 内丘县|