gpt4 book ai didi

C程序无法识别空格字符

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:46:21 31 4
gpt4 key购买 nike

我在 C 中有一个家庭作业问题,它接受用户输入的字符(仅来自 a-z 或空格)并返回 ASCII 值。如果它只是字符,代码可以正常工作,但是当我尝试输入空格时,它不会返回数字 32。任何帮助都会很棒!

#include <stdio.h>

char buf[128];

int main(int argc, char *argv[]) {
buf[127] = 0;
char *line = argv[1];
int i;
int j;
i = 0;
j = 126;
while((line[i] >= 'a' && line[i] <= 'z') || (line[i] == ' ')){
buf[j] = line[i];
printf("%d", buf[j]);
printf(" ");
i++;
j--;
}
return 0;
}

没有错误信息。例如,如果我输入字符串“hello”,它会返回“104 101 108 108 111”,但如果我输入“hello guys”,它也会返回“104 101 108 108 111”并在空格字符处停止。

最佳答案

它不起作用,因为你的程序只使用命令行参数(而不是从 stdin 中读取,这是大多数 C 作业所期望的),并且大多数 shell 将用空格分隔命令行参数,除非它们' 用引号括起来。

所以这样:

.\myprogram foo bar

将呈现为:

argc == 3
argv[0] == "(path)/myprogram"
argv[1] == "foo"
argv[2] == "bar"

但是这个:

.\myprogram "foo bar"

将呈现为:

argc == 2
argv[0] == "(path)/myprogram"
argv[1] == "foo bar"

关于C程序无法识别空格字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58109605/

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