gpt4 book ai didi

不使用 C 库函数比较 2 个字符串

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

如何在不使用 C 库函数的情况下比较 2 个字符串?例如,我对如何编码“土豚”“大于”“沼泽”感到困惑。我需要通过比较字符串的字符来对二维字符串数组进行冒泡排序...这是我的问题。我是否使用 strlen() 比较字符串长度,然后比较字符?请帮忙,因为我有点困惑。谢谢

最佳答案

使用strcmp("aardvark","bog");

如果它们相同,则返回 0;如果 aardvark 小于 bog(确实如此),则返回负数;如果大于 bog,则返回正数。

这是文档的链接:

http://www.cplusplus.com/reference/cstring/strcmp/

“小于”或“大于”的计算方式不依赖于字符串长度,而是依赖于 ASCII 表。 A 小于 b,因此 aardvark 小于 bog。 Salamander 比沙拉更好,因为它们匹配直到 m/d 逐个字符,直到您比较 m 和 d。 M 在 d 之后。因此,如果蝾螈是你的第一个参数,沙拉是第二个参数,它会返回一个正数。

如果由于某种原因,你确实无法使用 C 库函数,你可以重新发明轮子,将字符串视为数组,逐个字符地进行比较。

类似于以下内容:

int compare(char* a, char* b)

{
assert(a!=NULL&&b!=NULL);
int i = 0;
while ( a[i] != '\0' )
{
if( b[i] == '\0' ) { return 1; }
else if( a[i] < b[i] ) { return -1; }
else if( a[i] > b[i] ) { return 1; }
i++;
}
if(b[i]=='\0')
return 0;
else
return -1;
}

这里我再次使用小于和大于来比较各个字符,因为它们保存由 ASCII 标准定义的整数值。

要了解我在说什么,请尝试将一个字符转换为 int 并打印它。

关于不使用 C 库函数比较 2 个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40035238/

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