[英]How does following statement produce spaces?
我的程序“upper”试图做的是使字母大写。 它从命令行获取一个文件作为 argv; 然后在之后读取它使它们大写。
一个例子:example.txt 文件中的“我想知道它是否有效”。 在命令行中:
C:\Users\...>upper example.txt
I WONDER IF IT WORKS
这是我第一次使用的代码:
int main (int argc, char *argv[]){
FILE * fp;
int ch;
if ((fp = fopen (argv[1] , "r+")) == NULL) {
fprintf (stderr , "Can not be opened.");
exit(EXIT_FAILURE);
}
while((ch = getc(fp)) != EOF){
if (isalpha(ch))
putchar(toupper(ch));
else
putchar(' ');
}
fclose(fp);
return 0;
}
它有效,但我看到了一个更简洁的版本,它不需要else
语句。
while((ch = getc(fp)) != EOF){
putchar(toupper(ch));
}
它也在每个单词之间放置了空格。 这怎么可能?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.