c - 使用 getchar() 读取所有输入

标签 c string

<分区>

输入:

hi my name is john
how are you
thanks.

期望的输出:

himynameisjohnhowareyouthanks

我的代码是:

int main(void){
    {
        char *strptr = ""; 
        int i = 0;

        while(EOF){

            while(islower(getchar())==true){
                strcat(strptr,tolower(getchar()));
            }
            printf("%s",strptr); 
        }              
    }  
}

我该怎么做?谢谢。

最佳答案

您的代码中存在一些问题,特别是 while(EOF) 部分。此外,您的代码可以通过一些额外的努力变得更简单。

检查以下代码以供引用。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(void)
{
    int input = 0;

    while (( input = getchar()) != EOF)   //read untill EOF
    {
        if (islower(input ))           //print only lower case alphabetic character  
            putchar(input);
    }
    printf("\n");
    return 0;
}

注意:以防万一您还想将大写字母转换为小写并打印,请查看tolower()。 .

关于c - 使用 getchar() 读取所有输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29124389/

相关文章:

c - 如果客户端在 udp 客户端/服务器应用程序中出现故障,服务器如何处理

c - 如何在 C 中使用 strtok 返回 NULL 字符串?

C函数指针行为,数组/数组指针行为

c - 如何将字节数组类型转换为 8 字节大小的整数

java - IndexOf 输入带空格的不同结果

java - Java 是否在运行时优化了字符串的创建?

c# - ASP.Net - 在具有动态长度的字符串上屏蔽前 6 个字符

Char 指针 NULL 终止和内存分配

c - 是否可以制作一个 Box 并要求用户在中间插入一些东西?

python - 如何从网址中提取标题?