在单独的行上输出每个单词[closed]

问题描述 投票:0回答:1

例如,我想将每个单词打印在一个单独的行上,而不像句子一样,但不标点。但是,我不确定该怎么做。有没有人可以帮助我做到这一点?我已经坚持了一个多星期。试图一遍又一遍地阅读问题,但没有得到如何做。

想要我这样做的问题:1.在源文件顶部为ctype.h库添加一个附加的#include语句,该语句提供字符类测试功能。

  1. 修改while循环体,以便程序在单独的行上输出每个单词。你应该丢弃所有非字母的字符,因此不应出现数字和标点符号。

     //Output should be this
    An
    operating
    system
    is
    a
    layer
    of
    sophisticated
    software
    that
    manages
    hardware
    resources
    and
    provides
    a
    common
    interface
    for
    user
    programs
    Popular
    desktop
    operating
    systems
    include
    Windows
    macOS
    Linux
    

    这是我到目前为止所做的代码:

    //code
    #include <stdio.h>
    int main (int argc, const char *argv[])
    {
    int nextChar;
    char read;
    read = getchar();
    putchar (read);
    
     while (nextChar != EOF){
         putchar(nextChar);
         nextChar = getchar();
     }
    return 0;
    }
    

    我为这个长期存在的主要问题感到抱歉,但我不愿意这样做。

c clion
1个回答
0
投票
#include <stdio.h>
#include <ctype.h>

....

char str[] = "An operating system is ...";
char *ptr = str;

while (*ptr)
{
    if (isspace((unsigned char)*ptr))
    {
         *ptr = '\n'; // replace blanks with newlines
    }
    ptr++;
}
puts(str);
© www.soinside.com 2019 - 2024. All rights reserved.