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

C語言中%c與%s的區(qū)別與劃分詳解

 更新時間:2020年12月07日 14:33:28   作者:zhgl7688  
這篇文章主要介紹了C語言中%c與%s的區(qū)別與劃分詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

%c格式對應的是單個字符,%s格式對應的是字符串。

例:

char a;
char b[20];
scanf("%c",&a); //只能輸入一個字符。
scanf("%s",b); //可以輸入一串不超過20字符的字符串。

%c對應類型為char, %s對應類型為char * , 即字符串.

用作輸入時, 二者參數都要傳char * 型.

%c輸入函數只會對一個字節(jié)空間賦值. 而%s會一直賦值,直到輸入中遇到空白字符為止.

用作輸出時, %c傳char類型,輸出一個字符. %s傳char*類型參數, 輸出到\0為止.

%c只能輸出或輸入一個字符,%s輸出的是一串字符還有就是char a; string s;

輸入的時候scanf("%c", &a);這里的&不能少

而scanf("%s",s);這里不能有&符號

轉換說明符

   %a(%A)     浮點數、十六進制數字和p-(P-)記數法(C99)
   %c       字符
   %d       有符號十進制整數
   %f       浮點數(包括float和doulbe)
   %e(%E)    浮點數指數輸出[e-(E-)記數法]
   %g(%G)    浮點數不顯無意義的零"0"
   %i       有符號十進制整數(與%d相同)
   %u       無符號十進制整數
   %o       八進制整數  e.g.   0123
   %x(%X)    十六進制整數0f(0F)  e.g.  0x1234
   %p       指針
   %s       字符串
   %%       "%"

補充知識:c語言中scanf("%c",&c)吃掉回車或者空格字符的問題

2`標志

左對齊:"-" e.g. "%-20s"

右對齊:"+" e.g. "%+20s"

3.格式字符串(格式)

 〔標志〕〔輸出最少寬度〕〔.精度〕〔長度〕類型
 "%-md" : 左對齊,若m比實際少時,按實際輸出。
 "%m.ns" : 輸出m位,取字符串(左起)n位,左補空格,當n>m or m省略時m=n
 "%m.nf" : 輸出浮點數,m為寬度,n為小數點右邊數位
 "%3.1f" :  輸入3852.99 輸出3853.0 

補充知識:c語言中scanf("%c",&c)吃掉回車或者空格字符的問題

我就廢話不多說了,大家還是直接看代碼吧~

#include<stdio.h>
void main(){
 int a;
 char b; 
 
 printf("input a integer\n");
 scanf("%d",&a);
 //這里需要吸收 回車符 下面有種方法,第二種我沒看懂 誰能改下代碼 告訴我第二種怎么用
 printf("input a char\n");
 scanf("%c",&b); 
 printf("%d,%c\n",a,b); 
}
/*
(1)用getchar()清除
(2)用"%1s"來限制
(3)用格式串中空格或"%*c"來"吃掉"
(4)用函數fflush(stdin)清除全部剩余內容
*/

下面使用第二種方法

#include<stdio.h>
int main(){ 
 
 int a;
 char b; 
 
 printf("input a integer\n");
 scanf("%d",&a);
 //這里需要吸收 回車符 下面有種方法,第二種我沒看懂 誰能改下代碼 告訴我第二種怎么用
 printf("input a char\n");
 scanf("%1s",&b); 
 
 printf("%d %c\n",a,b);
 system("pause");
 return 0; 
}

環(huán)境(dev c++)

測試結果

可以看出a的值異常了,為什么呢?

這應該和編譯器有關系,因為%1s的輸入方式的問題。

解決方法有兩種:

第一:

char b;

int a;

將這兩個變量的聲明換一下,哈哈,以前老師說過。但我感覺著不是解決方法,如果還有其他的變量,這種方式是不是還會危害其他呢。

第二:

#include<stdio.h>
int main(){ 
 
 int a;
 char b[2]; 
 
 printf("input a integer\n");
 scanf("%d",&a);
 //這里需要吸收 回車符 下面有種方法,第二種我沒看懂 誰能改下代碼 告訴我第二種怎么用
 printf("input a char\n");
 scanf("%1s",&b); 
 
 printf("%d %c\n",a,b[0]);
 system("pause");
 return 0; 
}

b聲明成字符創(chuàng)的形式,哈哈,這個好。。。。

結果為:

以上這篇C語言中%c與%s的區(qū)別與劃分詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C語言實現反彈球游戲

    C語言實現反彈球游戲

    這篇文章主要為大家詳細介紹了C語言實現反彈球游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++中Stack(棧)的使用方法與基本操作詳解

    C++中Stack(棧)的使用方法與基本操作詳解

    Stack是一種常見的數據結構,常常被用來解決遞歸問題、括號匹配問題、函數調用棧等等。本文將介紹C++中stack的使用方法及基本操作,需要的可以參考一下
    2023-05-05
  • 一起來學習C++中remove與erase的理解

    一起來學習C++中remove與erase的理解

    這篇文章主要為大家詳細介紹了C++的remove與erase,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++?Qt實現動態(tài)增加垂直滾動條

    C++?Qt實現動態(tài)增加垂直滾動條

    本博文源于筆者正在工作的一個小內容,內容涉及到為qt動態(tài)增加垂直滾動條,文章分為三個部分,問題起源,問題解決方案,問題解決成功效果,思路清晰,文章干貨滿滿,復制源碼即可使用,需要的朋友可以參考下
    2023-08-08
  • 深入理解C++內鏈接與外鏈接的意義

    深入理解C++內鏈接與外鏈接的意義

    鏈接描述了名稱在整個程序或一個翻譯單元中如何引用或不引用同一實體,下面這篇文章主要給大家介紹了關于C++內鏈接與外鏈接意義的理解,需要的朋友可以參考下
    2021-11-11
  • C++函數指針和回調函數使用解析

    C++函數指針和回調函數使用解析

    這篇文章主要為大家詳細介紹了C++函數指針和回調函數的使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C++實現學生管理系統(tǒng)

    C++實現學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++中指向結構體變量的指針

    C++中指向結構體變量的指針

    結構體變量的指針就是該變來那個所占據的內存段的起始地址??梢栽O一個指針變量,來指向一個結構體變量,此時該指針變量的值是結構體變量的起始地址
    2013-10-10
  • C語言中send()函數和sendto()函數的使用方法

    C語言中send()函數和sendto()函數的使用方法

    這篇文章主要介紹了C語言中send()函數和sendto()函數的使用方法,是C語言入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型)

    C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型)

    這篇文章主要介紹了C++中的繼承問題(繼承基本概念、菱形虛擬繼承的對象模型),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02

最新評論

滨海县| 西平县| 彭州市| 濉溪县| 兴山县| 涡阳县| 盐城市| 富裕县| 玉门市| 徐闻县| 儋州市| 农安县| 疏勒县| 布拖县| 沈丘县| 乌拉特前旗| 巴东县| 南召县| 哈巴河县| 石景山区| 新疆| 射洪县| 永安市| 上饶县| 新河县| 三穗县| 大宁县| 灵璧县| 乐昌市| 前郭尔| 高安市| 宾川县| 华亭县| 新竹县| 商丘市| 宝兴县| 安康市| 兴城市| 望奎县| 武隆县| 萨嘎县|