gpt4 book ai didi

C 字符串输入混淆

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:33 25 4
gpt4 key购买 nike

C 确实不是我的强项,在阅读了有关该主题的一本书的 3 章并花了很长时间试图让东西工作之后,它却没有:

#include <stdio.h>
char *a,*b;
int main( )
{
char input[10];
fgets(input,sizeof input, stdin);
a = input;
fgets(input,sizeof input, stdin);
b = input;
printf("%s : %s",a,b);

}

我已将问题从我的主要项目中分离出来。此代码旨在读取两个字符串,然后打印它们,但它似乎将 a 和 b 设置为指向输入。输入 A 和 B 时此代码的示例输出是(不用担心\n 我可以删除它们):

A
B
B
: B

我如何将输入值存储在另一个变量中,例如。 a 或 b 以便在上述情况下

A
B
A
: B

是否输出?

注意:我不希望 a 或 b 指向另一个我想在其中存储字符串的变量:

a = "A";
b = "B";

将是等效的字符串文字。

谢谢

最佳答案

您必须将 ab 声明为与输入数组一样大的单独数组,或者为它们动态分配内存。无论哪种方式,您都必须使用 strcpy() 将一个字符串的内容复制到另一个:

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

int main(void)
{
char input[10], a[10], b[10];
fgets(input, sizeof input, stdin);
strcpy(a, input);
fgets(input, sizeof input, stdin);
strcpy(b, input);
printf("%s : %s\n", a, b);
return 0;
}

关于C 字符串输入混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2587940/

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