1
以下是規格。C程序可以計算給定文本中可能有空行的字符,單詞和行數?
從標準輸入讀取的每個字節都計爲EOF以外的字符。單詞被定義爲連續的字母序列(a到z,A到Z)和撇號(',值39十進制),由這些範圍外的任何字符分隔。 行被定義爲由換行符('\ n')分隔的連續字符序列。 超出最終換行符的字符將不包含在行數中。
我的代碼似乎適用於簡單的輸入,但是當我嘗試輸入多個由空行分隔的段落的大文件時,我的數字被拋出,字數和字符太高。
到目前爲止,我有
#include <stdio.h>
int main(){
char ch;
unsigned int long linecount, wordcount, charcount;
int u;
linecount=0;
wordcount=0;
charcount=0;
while((ch=getc(stdin))!=EOF){
if (ch !='\n') {++charcount;}
if (ch==' ' || ch=='\n') {++wordcount;}
if (ch=='\n') {++linecount;}
}
if(charcount>0){
++wordcount;
++linecount;
}
printf("%lu %lu %lu\n", charcount, wordcount, linecount);
return 0;
}
只要遇到空格或換行符,就可以增加wordcount。重新思考一個詞是什麼。它不僅僅是一串空格和換行符。 –
「*我的代碼似乎適用於簡單的輸入*」你確定嗎?餵它三個空白和一條新線。 – alk