練習1-21:編寫程式entab,將空格串替換為最好數量的製表符和空格,但要保持單詞之間的間隔不變。
思路:
對於製表符的作用我們已經在習題1-20
中講解了。
這裡的題目是用最少的製表符和空格代替空格。這裡也分為以下幾種情況:
字元為空格時,判斷當前空格的位置,如果當前位置對8取餘不為零,則nb++;如果當前位置對8取餘等於零,ntab++,pos++,並且要把nb變為0;
字元為換行時,把變數清空,即nb=0,ntab=0,pos=0
字元為普通字元時,首先根據ntab的值for迴圈輸出\t;同樣根據nb的值迴圈輸出空格。然後判斷當前字元若為\t,則位置pos=pos+(entab-pos%entab)%entab+1;否則令pos++。之後令nb為零。並輸出當前字元。
c語言**實現:
#include#define entab 8void
main()
else
pos++;
}else
if(c == '\n'
)else
for(;j)
if(c == '\t'
)else
putchar(c);
nb = 0
; ntab = 0
; i = 0
; j = 0
; }}
}
C程式語言練習題1 21
練習1 21編寫程式entab,將空格串替換為最少數量的製表符和空格,但要保持單詞之間的間隔不變。假設製表符終止的位置與練習1 20的detab程式的情況相同。當使用乙個製表符或者乙個空格都可以打到下乙個製表符終止位時,選用哪一種替換字元比較好?如下 include 包含標準庫的資訊。define ...
C語言練習
練習1 include stdlib.h include iostream.h include stdio.h void main cout 輸入檔案1的資料內容 以 結束 while ch stu n void input char a a用於接收要寫入資料的檔名 inti file fp if ...
c語言練習
經常練練,有易於身心健康,避免出沒遇到熊。1 請編寫函式fun,對長度為7個字元的字串,除首 尾字元外,將其餘5個字元按ascii碼降序排列。例如,若原來的字串為ceaedca,則排序後輸出為cedceaa。注意 部分源程式給出如下。請勿改動主函式main和其他函式中的任何內容,僅在函式fun的花括...