读取未知大小/长度的文件,删除非字母字符,并将大写更改为更低

时间:2016-09-03 18:12:49

标签: c arrays uppercase lowercase alphabetic

然后必须每行打印80个字符。

这是在c。

中完成的

我的编码非常弱,不知道从哪里开始。

感谢任何帮助

1 个答案:

答案 0 :(得分:1)

如果要求将大写改为小写,则需要:

#include <ctype.h>

用于tolower()函数和isalnum()函数

............

从文件中输入字符,因为需要处理每个字符,所以需要:

#include <stdio.h>

功能:getchar()以及EOF的定义和功能:putc()

.............

要计算当前行上当前显示的字符数,需要:

size_t lineLen = 0;

................

知道何时转到下一个输出线将需要该数字80

#define MAX_LINE_LEN (80)

.........

如果命令行包含:

myprogram < inputFile.txt

然后不需要在程序中打开/关闭文件。

...........

当然,需要一个没有参数的main()函数:

int main( void )
{
...
} // end function: main

.........

由于我们将一次一个地阅读大量字符,因此需要:

编辑的以下while()语句可以处理任何输入字符。

int ch;
while( (ch = getchar()) != EOF )
{
...
}

........

由于只显示可打印的字符,因此需要一行:

if( isalnum( ch ) )
}
....
}

..........

由于仅以小写显示,因此需要一行:

ch = tolower( ch );

............

需要实际输出char,并跟踪行的长度

putc( ch );
lineLen++;

............

需要在80个字符之后输出一个新行并重置计数器

if( MAX_LINE_LEN >= lineLen )
{
    lineLen = 0;
    putc( '\n' );
}

............

遇到EOF后,需要输出最终换行符才能显示所有字符

putc( '\n' );

............

这就是它的全部内容。