我对C很陌生;在讲师告诉我用C进行编码之前,我通常先用C ++进行编码。那么如何在C中的if语句中比较两个字符串?
#include <stdio.h>
char name[100],tanya[50],type[100];
int value;
int main()
{
printf("Enter name: ");
scanf("%s", name);
printf("Hello %s", name);
printf( ", Are you interested in Anime? (y/n)");
scanf("%s", tanya);
if (tanya == "y") { // this is the part
printf("Wow, you're an interesting person %s");
do {
} while ();
} else {
printf("good day sir.");
}
return 0;
}
要比较strings
中的c
,可以使用strcmp()
库中提供的strcmp()
。
string.h
此函数返回char a[10],b[10];
if( strcmp(a,b) == 0 ) {
// .. both are identical
}
,您将在引用中获取详细信息。
或者,在学习时,实现自己的比较功能,例如:
0 or non zero
这可以帮助您考虑引擎盖下发生的事情。
#include <stdio.h>
#include <string.h>
bool isEqual(char* a, char* b) {
char* c = a, *d = b;
while(*c != '\0' && *d != '\0') {
if(*c != *d) return false;
c++;
d++;
}
return true;
}
int main() {
char a[10],b[10];
strcpy(a,"name");
strcpy(b,"name");
if(isEqual(a,b)) {
printf("%s %s are same\n",a,b);
}else{
printf("%s %s are not same\n",a,b);
}
return 0;
}
[当您只想输入if (tanya == "y")
或y
之类的单个字符时,您无需使用或比较字符串。
而不是使用n
对象,在其中输入一个字符,并比较该字符在char
语句的条件内是否匹配y
或Y
:
if
如果明确要使用字符串,则需要正确比较两个字符串。
在C语言中,比较两个字符串的一种常用方法是使用标题printf(", Are you interested in Anime? (y/n)");
char tanya;
scanf("%c", tanya);
if (tanya == 'y' || tanya == 'Y')
{....}
中的strcmp()
函数。
在您的代码中,它可以用作:
string.h
完成比较和if(strcmp(tanya,"yes") == 0);
语句的证明,以检查两个字符串是否相等。
整个代码应如下所示:
if
顺便说一句,仅仅因为他/她不喜欢动漫就踢任何人都是肤浅的;-)
您可以比#include <stdio.h>
#include <string.h>
char name[100],tanya[50],type[100];
int value;
int main()
{
printf("Enter name: ");
scanf("%s", name);
printf("Hello %s", name);
printf( ", Are you interested in Anime? (y/n)");
scanf("%s", tanya);
if(strcmp(tanya,"yes") == 0){
printf("Wow, you're an interesting person %s", tanya);
}
else{
printf("Good day sir.");
}
return 0;
}
比较检查单个字符。
'y'和“ y”一起具有不同的含义。 “ y”是单个字符,“ y”是两个字符“ y”和“ \ 0”。
您可以按照以下方式更新您的条件,
string