【发布时间】:2017-01-05 18:25:48
【问题描述】:
有谁知道如何将这一行从 C++ 转换为 C 编程语言? 我用 C++ 编写了这段代码,我想用 C 转换它。
bool compare(string a, string b)
{
return a+b > b+a;
}
这是qsort中的比较函数
我想通过“a+b > b+a”比较来解决这个问题:比如如果有4个整数123、124、56、90那么下面的整数可以做成“1231245690、1241235690、5612312490 , 9012312456, 9056124123" 等。实际上可以生成 24 个这样的整数。但有一点可以肯定的是,9056124123 是最大可能的整数。
【问题讨论】:
-
你有什么尝试吗?
-
要确定所需的结果,实际上不需要连接字符串!比较可以完全基于子串比较来运行。
-
您可以通过循环手动逐个字符地比较它们,这比构造新字符串要快。只要
a击中'\0',您只需从b继续。顺便说一句,这样的比较公式 (a+b b+a) 没有意义。 -
你还需要连接吗?如果一个字符串小于/相同/大于另一个字符串,它们的相互连接也会如此。请注意,比较字符串与比较数字不同:
"124" > "1234"。也许您应该将它们实际转换为数字。 -
将代码从 c++ 转换为 c == 将特斯拉转换为 T 型福特。为什么?