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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在输出终端中消除多余空格

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在输出终端中消除多余空格 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

???? 來源于《The C Programming Language》的一道習題(P13,PR1-9):

???? 編寫一個將輸入復制到輸出的程序,并將其中連續的多個空格用一個空格代替

???? 自己實現:

????

???? #include <stdio.h>

???? int main()
???? {


???????? int c, flag;

???????? flag = 0;
???????? while((c = getchar()) != EOF)
??????????????? if(c == ' ' && flag == 0)
??????????????? {
?????????????????????? putchar(c);
????????????????????? ++flag;
??????????????? }
??????????????? else if(c == ' ' && flag != 0)
????????????????????? ++flag;
??????????????? else
??????????????? {
????????????????????? flag = 0;
????????????????????? putchar(c);
??????????????? }


??????? return 0;


???? }

???? 參考代碼:

???? #include <stdio.h>

???? #define NONBLANK 'a'

???? int main()
???? {


????????? int c, lastc;

????????? lastc = NONBLANK;
????????? while((c = getchar()) != EOF)
????????? {
???????????????? if(c != ' ')
?????????????????????? putchar(c);
???????????????? if(c == ' ')
??????????????????????? if(lastc != ' ')
?????????????????????????????? putchar(c);
???????????????? lastc = c;
????????? }

????????? return 0;


????? }???

????? 比較兩段代碼,發現自己的代碼還是嫩了些:

????? 1. 對于flag變量,有點幻數的感覺(不知道這個比喻恰不恰當,哈哈),當別人在讀代碼時,不能一眼看出它的含義,而參考代碼中

????????? 使用的宏NONBLANK就不存在這方面的問題。

????? 2. 在程序主體結構中,對于判斷條件的組織及if else語句的使用上,沒有參考代碼中的簡潔和高效

轉載于:https://www.cnblogs.com/roma823/archive/2011/07/10/2102308.html

總結

以上是生活随笔為你收集整理的在输出终端中消除多余空格的全部內容,希望文章能夠幫你解決所遇到的問題。

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