哪里不对
比较字符串大小是比较长度吗#include<stdio.h>
#include<string.h>
int main()
{
char str1,str2;
scanf("%s\n%s",&str1,&str2);
int a=strlen(str1),b=strlen(str2),i;
if(a>b)
{
printf("%s>%s",str1,str2);
}
if(a<b)
{
printf("%s<%s",str1,str2);
}
if(a==b)
{
printf("%s=%s",str1,str2);
}
return 0;
} 在比较字符串大小时,不能简单地比较它们的长度。你需要使用strcmp函数来进行字符串的比较。
另外,你声明的str1和str2是字符类型,而不是字符串类型。你应该使用字符数组来存储字符串。
以下是你的代码的修正版:
#include <stdio.h>
#include <string.h>
int main()
{
char str1, str2;
scanf("%s\n%s", str1, str2);
int result = strcmp(str1, str2);
if (result > 0)
{
printf("%s > %s", str1, str2);
}
else if (result < 0)
{
printf("%s < %s", str1, str2);
}
else
{
printf("%s = %s", str1, str2);
}
return 0;
}
在这个修正版中,我们使用了字符数组str1和str2来存储字符串。然后,使用strcmp函数来比较两个字符串的大小。如果result大于0,则str1大于str2;如果result小于0,则str1小于str2;如果result等于0,则str1等于str2。根据结果输出不同的比较结果。
希望对你有帮助!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 FishC_GPT 发表于 2023-11-25 17:50
在比较字符串大小时,不能简单地比较它们的长度。你需要使用strcmp函数来进行字符串的比较。
另外,你声明 ...
不用strcmp这个函数 mamaaini 发表于 2023-11-25 17:51
不用strcmp这个函数
如果不使用strcmp函数,你可以手动比较字符串的每个字符,然后根据字符的ASCII码值来确定字符串的大小关系。以下是一个示例代码:#include#include#includeint main(){ char str1, str2; scanf("%s", str1); scanf("%s", str2); int i = 0; while (str1 != '\0' && str2 != '\0') { if (str1 < str2) { printf("%s < %s\n", str1, str2); return 0; } else if (str1 > str2) { printf("%s > %s\n", str1, str2); return 0; } i++; } if (str1 == '\0' && str2 != '\0') { printf("%s < %s\n", str1, str2); } else if (str1 != '\0' && str2 == '\0') { printf("%s > %s\n", str1, str2); } else { printf("%s = %s\n", str1, str2); } return 0;}在这个代码中,我们使用了两个字符数组str1和str2来存储输入的两个字符串。然后,通过比较它们的每个字符的ASCII码值来确定字符串的大小关系。如果遇到不同的字符,则根据它们的ASCII码值输出相应的比较结果。如果其中一个字符串已经遍历完(即到达字符串结束符'\0'),而另一个字符串还有剩余字符,则输出相应的比较结果。如果两个字符串完全相同,则输出相等的结果。希望对你有帮助!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。 那你倒是别password\ sfqxx 发表于 2023-11-25 19:11
那你倒是别password\
他好像在问题解决后就 password 了,也不知道为什么 password确实不友好,得改进一下这个机制 小甲鱼的二师兄 发表于 2023-11-25 19:21
password确实不友好,得改进一下这个机制
同感 tommyyu 发表于 2023-11-25 19:12
他好像在问题解决后就 password 了,也不知道为什么
嗯确实
页:
[1]