c语言中关于字符的输入输出问题。
我想知道输入scanf("%c",a[i]);和scanf("%s",a);和gets(a)和getchar()的区别
还有就是输出printf("%c",a[i])和printf("%s",a)和puts(a)和putchar()的区别
putchar å½æ°æ¯å符è¾åºå½æ°ï¼ å
¶åè½æ¯å¨æ¾ç¤ºå¨ä¸è¾åºå个å符ã
getcharå½æ°çåè½æ¯ä»é®çä¸è¾å ¥ä¸ä¸ªå符ã å½æ°åªè½æ¥åå个å符ï¼è¾å ¥æ°åä¹æå符å¤çãè¾å ¥å¤äºä¸ä¸ªå符æ¶ï¼åªæ¥æ¶ç¬¬ä¸ä¸ªå符ã
printf å½æ°ç§°ä¸ºæ ¼å¼è¾åºå½æ°.ä¸è¬å½¢å¼ä¸ºï¼printf(âæ ¼å¼æ§å¶å符串âï¼è¾åºè¡¨å)
scanf å½æ°å¨æ¬è´¨ä¸ä¹æ¯ç»åéèµå¼ï¼
1ãä½è¦æ±ååéçå°åï¼å¦&aãscanfå½æ°ä¸æ²¡æ精度æ§å¶ï¼å¦ï¼scanf("%5.2f",&a);æ¯éæ³çãä¸è½ä¼å¾ç¨æ¤è¯å¥è¾å ¥å°æ°ä¸º 2 ä½çå®æ°ã
2ãscanf ä¸è¦æ±ç»åºåéå°åï¼å¦ç»åºåéååä¼åºéãå¦ scanf("%d",a);æ¯éæ³çï¼åºæ¹ä¸ºscnaf("%d",&a);ææ¯åæ³çã
3ãå¨è¾å ¥å¤ä¸ªæ°å¼æ°æ®æ¶ï¼è¥æ ¼å¼æ§å¶ä¸²ä¸æ²¡æéæ ¼å¼å符ä½è¾å ¥æ°æ®ä¹é´çé´éåå¯ç¨ç©ºæ ¼ï¼TABæå车ä½é´éãCç¼è¯å¨ç¢°å°ç©ºæ ¼ï¼TABï¼å车æéæ³æ°æ®(å¦å¯¹â%dâè¾å ¥â12Aâæ¶ï¼Aå³ä¸ºéæ³æ°æ®)æ¶å³è®¤ä¸ºè¯¥æ°æ®ç»æã
4ãå¨è¾å ¥å符æ°æ®æ¶ï¼è¥æ ¼å¼æ§å¶ä¸²ä¸æ éæ ¼å¼å符ï¼å认为ææè¾å ¥çå符å为ææå符ã追é®
getcharå½æ°çåè½æ¯ä»é®çä¸è¾å ¥ä¸ä¸ªå符ã å½æ°åªè½æ¥åå个å符ï¼è¾å ¥æ°åä¹æå符å¤çãè¾å ¥å¤äºä¸ä¸ªå符æ¶ï¼åªæ¥æ¶ç¬¬ä¸ä¸ªå符ã
printf å½æ°ç§°ä¸ºæ ¼å¼è¾åºå½æ°.ä¸è¬å½¢å¼ä¸ºï¼printf(âæ ¼å¼æ§å¶å符串âï¼è¾åºè¡¨å)
scanf å½æ°å¨æ¬è´¨ä¸ä¹æ¯ç»åéèµå¼ï¼
1ãä½è¦æ±ååéçå°åï¼å¦&aãscanfå½æ°ä¸æ²¡æ精度æ§å¶ï¼å¦ï¼scanf("%5.2f",&a);æ¯éæ³çãä¸è½ä¼å¾ç¨æ¤è¯å¥è¾å ¥å°æ°ä¸º 2 ä½çå®æ°ã
2ãscanf ä¸è¦æ±ç»åºåéå°åï¼å¦ç»åºåéååä¼åºéãå¦ scanf("%d",a);æ¯éæ³çï¼åºæ¹ä¸ºscnaf("%d",&a);ææ¯åæ³çã
3ãå¨è¾å ¥å¤ä¸ªæ°å¼æ°æ®æ¶ï¼è¥æ ¼å¼æ§å¶ä¸²ä¸æ²¡æéæ ¼å¼å符ä½è¾å ¥æ°æ®ä¹é´çé´éåå¯ç¨ç©ºæ ¼ï¼TABæå车ä½é´éãCç¼è¯å¨ç¢°å°ç©ºæ ¼ï¼TABï¼å车æéæ³æ°æ®(å¦å¯¹â%dâè¾å ¥â12Aâæ¶ï¼Aå³ä¸ºéæ³æ°æ®)æ¶å³è®¤ä¸ºè¯¥æ°æ®ç»æã
4ãå¨è¾å ¥å符æ°æ®æ¶ï¼è¥æ ¼å¼æ§å¶ä¸²ä¸æ éæ ¼å¼å符ï¼å认为ææè¾å ¥çå符å为ææå符ã追é®
çä¸æ
追çå¤çå éå°±ä¼æç½äº æè èªå·±åå 个代ç å°±ä¼ç¥éåºå«ï¼å®è·µææ¯æ好çèå¸ï¼å«äººè¯´çä¸ä¸å®æ¯ä½ èªå·±çï¼å æ²¹
追é®æå个å泡æåºç代ç ä½ ç»æ解é解éè¡å
追çååºæ¥çä¸ï¼è½åæçè¯ æå°±å¸®ä½ è§£æäº
追é®è°¢å¦
追çä¸å®¢æ°
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-12-08
scanf("%c",&a[i]):是一次输入一个字符,这个是时候要对数组元素取地址:
scanf("%s",a);是以字符串的形式输入,a就是字符数组的首地址;
gets(a)也是以字符串的形式输入,getchar()每次读取一个字符;
printf(),puts()putchar();就类似了追问
scanf("%s",a);是以字符串的形式输入,a就是字符数组的首地址;
gets(a)也是以字符串的形式输入,getchar()每次读取一个字符;
printf(),puts()putchar();就类似了追问
我记得有空格的时候有差别的
追答scanf("%c",&ch);遇到空格会以正常字符形式读入;
scanf("%s",a);遇到空格,会认为字符串结束,把空格之前的字符串读入
我发个冒泡排序的代码,帮我解释一下行吗
追答可以
发吧