mamaaini 发表于 2023-11-24 20:45:35

为什么后面字母输出不了

FishC_GPT 发表于 2023-11-24 20:46:09

在你的代码中,有几个问题导致后面的字母输出不出来。

1. scanf函数中不应该使用"%s"来读取一个字符,而是应该使用"%c"。因为"%s"用于读取字符串,而"%c"用于读取单个字符。
2. 在你的for循环中,条件判断的方式有问题。应该使用比较运算符(<、>、<=、>=、==、!=)来比较两个值是否相等或大小关系,而不是使用赋值运算符(=)。
3. 在你的if语句中,条件判断的方式也有问题。应该使用双等号(==)来判断两个值是否相等。

下面是修正后的代码:

#include<stdio.h>
#include<string.h>

int main()
{
    char a;
    int i, j = 0;

    scanf("%s", a);
    int len = strlen(a);

    for (i = 0; i < len; i++)
    {
      if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z'))
      {
            a = a;
      }
    }

    a = '\0'; // 在有效字符的最后添加字符串结束符

    printf("%s\n", a);

    return 0;
}

希望这能帮到你!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

mamaaini 发表于 2023-11-24 21:07:40

FishC_GPT 发表于 2023-11-24 20:46
在你的代码中,有几个问题导致后面的字母输出不出来。

1. scanf函数中不应该使用"%s"来读取一个字符,而是 ...

还是不行

FishC_GPT 发表于 2023-11-24 21:08:07

mamaaini 发表于 2023-11-24 21:07
还是不行

非常抱歉,我之前的回答有误。重新检查你的代码后发现还有其他问题。
1. 首先,你声明的变量a应该是一个字符数组而不是一个字符。
2. 其次,使用scanf函数时,应该使用"%c"来读取单个字符,不需要使用数组名作为参数。
3. 在if语句中,应该使用比较运算符(>、<、>=、<=、==、!=)来进行条件判断。
下面是修改后的代码:
#include <stdio.h>
#include <string.h>

int main() {
    char a;
    int i, j = 0;
    scanf("%s", a);
    int len = strlen(a);
   
    for (i = 0; i < len; i++) {
      if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) {
            printf("%c", a);
      }
    }
   
    return 0;
}
这段代码可以接受输入的字符串并删除其中的非英文字母字符,然后输出剩余的英文字母字符。希望能够帮到你!如果还有其他问题,请随时提问。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。

tommyyu 发表于 2023-11-24 21:08:53

我这里没有问题啊

isdkz 发表于 2023-11-24 21:16:16

密码贴?

jackz007 发表于 2023-11-24 21:16:47

      代码的语法、逻辑都没有问题,但是,i、j、len 3 个变量密切相关,为什么要刻意把他们定义成不同类型?
页: [1]
查看完整版本: 为什么后面字母输出不了