gpt4 book ai didi

c - if语句与C中的字符串比较

转载 作者:行者123 更新时间:2023-12-01 09:46:46 28 4
gpt4 key购买 nike

我应该编写一个简短的 C 代码,如果我键入“随机”,我会在其中生成一个介于 1 和 6 之间的随机数。如果我输入“exit”或“quit”,程序必须结束。 “退出”和“退出”有效,但当我输入“随机”时没有任何反应。

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

int main() {
printf("enter your command");
char input[100];
fgets(input, 100, stdin);

if (strcmp(input, "quit") == 0){
exit(0);
} else if (strcmp(input, "exit") == 0) {
exit(0);
} else if (strcmp(input, "random") == 0) {
srand(time(NULL));
int random_number = rand() %7;
printf("%d\n",random_number);
}
return 0;
}

最佳答案

您需要删除可以附加到 fgets 读取的字符串的换行符 '\n'

例如

char input[100];
input[0] = '\0';

if ( fgets (input, 100, stdin) )
{
input[strcspn( input, "\n" )] = '\0';
}

考虑到这个声明中的初始值设定项

int random_number = rand() %7;

生成 [0, 6] 范围内的数字。如果您需要 [1, 6] 范围,那么初始化程序应该如下所示

int random_number = rand() %6 + 1;

并且根据 C 标准,不带参数的函数 main 应声明为

int main( void )

关于c - if语句与C中的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47188582/

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