gpt4 book ai didi

c - strcmp() 没有返回它应该返回的内容

转载 作者:行者123 更新时间:2023-11-30 20:58:13 24 4
gpt4 key购买 nike

基本上,我想创建一个程序,其中包含我即将进行的数字系统考试中可能出现的潜在问题。

#include <stdio.h>
#include <string.h>
int main() {
char input1[600];
printf("What is the set of available registers?");
scanf("%s", &input1);

if(strcmp(input1, "registers, memory, hard disc") == 0){
printf("Good job! You got it right");
}
else {
printf("Wrong answer!");
}

因此,每当我输入“寄存器、内存、硬盘”时,当我被询问时,它都会返回 1 而不是 0。我看不到问题所在。我对 C 有点陌生,如果这是一个愚蠢的问题,我很抱歉。

最佳答案

正如评论中已经说过的,带有 "%s"scanf() 在第一个空白字符处停止转换。要读取整行文本,请使用 fgets():

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

// ...

char foo[100];
if(!fgets(foo, sizeof(foo), stdin)) // don't use sizeof on pointers
; // handle error // for that purpose!

size_t length = strlen(foo);
if(length && foo[length - 1] == '\n') // fgets also reads the newline character
foo[--length] = '\0'; // at the end of the line, this removes it.

关于c - strcmp() 没有返回它应该返回的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53470139/

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