gpt4 book ai didi

c - if/else 语句不验证数据

转载 作者:行者123 更新时间:2023-11-30 20:03:07 26 4
gpt4 key购买 nike

我正在编写代码以更好地理解 if/else 语句,但在尝试验证(?)字符串时遇到问题,感谢您的帮助(C 语言)

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

int main(){

char nametype[100];

printf("Enter the name type (firstname/lastname): ");
scanf("%s", &nametype);
script1(nametype);

return 0;
}

void script1(nametype){

char firstname[100];
int age;
char typename[100];

if(nametype == "firstname"){
char typename[100] = "first name.";
}

if(nametype == "lastname"){
char typename[100] = "last name.";
} else {
printf("You must enter the correct parameters! \n");
main();
}

printf("Enter your name: ");
scanf("%s", &firstname);
printf("Enter your age: ");
scanf("%d", &age);
printf("Hey! Your %s is %s, you're %d \n", typename, firstname, age);
}

我希望在第一个输入中输入“名字”或“姓氏”后代码会继续到最后,但它总是继续转到 else block 。

最佳答案

您对 == 运算符的作用有一个根本性的误解。

它不比较字符串。它比较指针。如果你写

char a[100] = "Hello";
char b[100] = "Hello";

然后 a == b 比较指针。 a是指向数组a的指针,b是指向数组b的指针,指针不同,比较为假。

使用strcmp。

PS。仅此一点不会使您的代码正常工作,因为您正在嵌套 block 中创建一个名为“typename”的 第二变量。它与外部 block 中的 typename 是不同的变量,因此这不会产生任何有用的效果。

关于c - if/else 语句不验证数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54160210/

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