C語言 練習1 21

2021-09-06 16:01:46 字數 815 閱讀 1594

練習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 8

void

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的花括...