gpt4 book ai didi

C语言getchar()和putchar()

转载 作者:太空宇宙 更新时间:2023-11-04 06:55:01 24 4
gpt4 key购买 nike

我是一个新的C语言学习者,我遇到了下面的问题,我试图打印出名字但是没有打印出来。这是我尝试过的:

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

int main()
{
char name;
int len = 0;

printf("Enter the user name: ");
name = getchar();

while (name != '\n')
{
len++;
name = getchar();
}

printf("char = %d\n", len);
printf("name = ");
putchar(name);

return (0);
}

输出:

Enter the user name: abcd
len = 4
name =

它应该打印出 name = abcd

非常感谢,谢谢!

最佳答案

getchar()putchar()一次只能处理一个单个字符。由于您需要存储一个基本上是字符序列的字符串,因此您需要声明 name作为字符数组。

您不能使用 putchar()打印一个字符串。尝试 puts()printf() .

并添加一个\0当您遇到停止阅读的 '\n' 时表示字符串结尾的字符。

char name[20];
int len = 0;

printf("Enter the user name: ");
name[len] = getchar();

while (name[len] != '\n')
{
name[++len] = getchar();
}
name[++len]='\0';

如果putchar()必须用于打印字符串,您在 len 中有字符串的长度.使用变量 i=0 进行循环并持续迭代 i<len同时增加 i通过 1

for(i=0; i<len; ++i)
{
putchar(name[i]);
}


您可能需要进行一些错误检查以确保 getchar() 工作正常。它将返回 EOF出错了。
name应该足够大以容纳输入字符串。

关于C语言getchar()和putchar(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46087580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com