鱼C论坛

 找回密码
 立即注册
查看: 1123|回复: 8

哪里不对

[复制链接]
发表于 2023-11-25 17:50:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
比较字符串大小是比较长度吗
#include<stdio.h>
#include<string.h>
int main()
{
    char str1[100000],str2[100000];
    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;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-11-25 17:50:33 | 显示全部楼层
在比较字符串大小时,不能简单地比较它们的长度。你需要使用strcmp函数来进行字符串的比较。

另外,你声明的str1和str2是字符类型,而不是字符串类型。你应该使用字符数组来存储字符串。

以下是你的代码的修正版:
#include <stdio.h>#include <string.h>int main(){    char str1[100], str2[100];    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官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-11-25 17:51:57 | 显示全部楼层
FishC_GPT 发表于 2023-11-25 17:50
在比较字符串大小时,不能简单地比较它们的长度。你需要使用strcmp函数来进行字符串的比较。

另外,你声明 ...

不用strcmp这个函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-25 17:52:10 | 显示全部楼层
mamaaini 发表于 2023-11-25 17:51
不用strcmp这个函数

如果不使用strcmp函数,你可以手动比较字符串的每个字符,然后根据字符的ASCII码值来确定字符串的大小关系。以下是一个示例代码:#include#include#includeint main(){    char str1[100], str2[100];    scanf("%s", str1);    scanf("%s", str2);    int i = 0;    while (str1[i] != '\0' && str2[i] != '\0') {        if (str1[i] < str2[i]) {            printf("%s < %s\n", str1, str2);            return 0;        } else if (str1[i] > str2[i]) {            printf("%s > %s\n", str1, str2);            return 0;        }        i++;    }    if (str1[i] == '\0' && str2[i] != '\0') {        printf("%s < %s\n", str1, str2);    } else if (str1[i] != '\0' && str2[i] == '\0') {        printf("%s > %s\n", str1, str2);    } else {        printf("%s = %s\n", str1, str2);    }    return 0;}在这个代码中,我们使用了两个字符数组str1和str2来存储输入的两个字符串。然后,通过比较它们的每个字符的ASCII码值来确定字符串的大小关系。如果遇到不同的字符,则根据它们的ASCII码值输出相应的比较结果。如果其中一个字符串已经遍历完(即到达字符串结束符'\0'),而另一个字符串还有剩余字符,则输出相应的比较结果。如果两个字符串完全相同,则输出相等的结果。希望对你有帮助!
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-25 19:11:09 | 显示全部楼层
那你倒是别password\
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-25 19:12:00 | 显示全部楼层
sfqxx 发表于 2023-11-25 19:11
那你倒是别password\

他好像在问题解决后就 password 了,也不知道为什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-25 19:21:24 From FishC Mobile | 显示全部楼层
password确实不友好,得改进一下这个机制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-25 20:08:14 | 显示全部楼层
小甲鱼的二师兄 发表于 2023-11-25 19:21
password确实不友好,得改进一下这个机制

同感
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-26 16:01:55 | 显示全部楼层
tommyyu 发表于 2023-11-25 19:12
他好像在问题解决后就 password 了,也不知道为什么

嗯确实
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 12:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表