gpt4 book ai didi

c - 如何让用户输入一个单词进行字符串比较?

转载 作者:行者123 更新时间:2023-11-30 19:35:59 24 4
gpt4 key购买 nike

我正在运行一个 while 循环,以便用户可以不断输入表达式,直到他们表明要退出程序。我使用 strcmp() 来比较两个字符串,因此一旦输入 quit 程序就会停止。但该计划仍在继续,有什么想法吗?

#include <stdio.h>
#include <string.h>
int main()
{
int min12=0;
char opper;
int x=0;
int min13;
char *Repeatprog="cont";
char *Repeatprog1="quit";

while (strcmp(Repeatprog,Repeatprog1))
{
printf("enter the integer number \n");
scanf( "%d %c %d", &min12, &opper, &min13);
printf("%d %c %d\n", min12, opper, min13);

printf("Type the word quit to end program\n");
scanf("%s", Repeatprog);
}
printf("Good Bye");
return 0;
}

最佳答案

永远记住数组是指向数组第一个对象的指针。其次,在调用 scanf() 时,您只读取了一个字符。不是整个字符串(在 C 中用 %s 表示)

所以总而言之,对 scanf() 的调用不应该有指针并且应该有一个字符串而不是>角色

scanf("%s", Repeatprog);

或者简单地

gets (Repeatprog);

编辑:

正如评论者 @EOF 所说,gets() 不是一个好主意,因为它可能导致未定义的行为。这是因为程序可以读取超出应有的字符并导致溢出,因此不安全。

所以我建议使用char *fgets(char *str, int n, FILE *stream)

注意:

此外,您的代码正在使用字符串文字。因此,如果您尝试更改char指针的内容,则会导致未定义行为

For this note, please thank the guys below me [comments]. I made a huge mistake and I'm sorry.

关于c - 如何让用户输入一个单词进行字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41903877/

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