将java转换为c++;
在爪哇 在C中++将java转换为c++;,java,c++,Java,C++,在爪哇 在C中++ public int compareTo2(String that) { String sig1 = this.sort(); String sig2 = that.sort(); return sig1.compareTo(sig2); } 第一个是Java程序。我把它翻译成C++程序。我写对了吗?谢谢。 此是一个指针,因此它必须与此->我想要的项目解除引用 代码>此< /COD>通常是C++类中的可选选项;编译器知道在方法中使用item\u I\
public int compareTo2(String that) {
String sig1 = this.sort();
String sig2 = that.sort();
return sig1.compareTo(sig2);
}
第一个是Java程序。我把它翻译成C++程序。我写对了吗?谢谢。
是一个指针,因此它必须与此
此->我想要的项目解除引用
<>代码>此< /COD>通常是C++类中的可选选项;编译器知道在方法中使用
item\u I\u want
意味着什么
sort()
方法strcmp()
需要C字符串(char*
);您可以使用strcmp(sig1.c_str(),sig2.c_str())调用它。
是一个指针,因此它必须与此
此->我想要的项目解除引用
<>代码>此< /COD>通常是C++类中的可选选项;编译器知道在方法中使用
item\u I\u want
意味着什么sort()
方法strcmp()
需要C字符串(char*
);您可以使用strcmp(sig1.c_str(),sig2.c_str())调用它。假设使用
string
您谈论的是std::string
:
std::string
不提供名为sort
的成员。您应该使用std::sort
:
int compareTo2 (string that) {
string sig1 = this.sort();
string sig2 = that.sort();
return strcmp(sig1,sig2);
}
而strcmp
被认为与const char*
s一起使用,因此您必须编写:
std::sort(sig2.begin(), sig2.end());
最后,必须取消对该
的引用:
return strcmp(sig1.c_str(), sig2.c_str());
假设您使用
string
谈论std::string
:
std::string
不提供名为sort
的成员。您应该使用std::sort
:
int compareTo2 (string that) {
string sig1 = this.sort();
string sig2 = that.sort();
return strcmp(sig1,sig2);
}
而strcmp
被认为与const char*
s一起使用,因此您必须编写:
std::sort(sig2.begin(), sig2.end());
最后,必须取消对该
的引用:
return strcmp(sig1.c_str(), sig2.c_str());
我想你要确定两个字符串,它们各自的字符按字母顺序排列是否相等 当你在做一些奇怪的事情时,你的两个函数都不起作用
java.lang.String
没有sort()
。您必须将字符串转换为char[]
,然后对该数组进行排序,然后将其转换回字符串
std::sort()
<>代码> STD::C++中的字符串可以与this.sort()
,这是什么我想你要确定两个字符串,它们各自的字符按字母顺序排列是否相等 当你在做一些奇怪的事情时,你的两个函数都不起作用
java.lang.String
没有sort()
。您必须将字符串转换为char[]
,然后对该数组进行排序,然后将其转换回字符串
std::sort()
<>代码> STD::C++中的字符串可以与this.sort()
,这是什么strcmp()
不接受字符串;你需要使用
std::string sig1 = this->sort();
为了对字符串进行排序,您需要#include
,然后可以调用
strcmp(sig1.c_str(), sig2.c_str());
对字符串进行排序
我还建议您使用strncmp()
方法并给出最大长度。它比strcmp()不带字符串要安全得多;你需要使用
std::string sig1 = this->sort();
为了对字符串进行排序,您需要#include
,然后可以调用
strcmp(sig1.c_str(), sig2.c_str());
对字符串进行排序
我还建议您使用strncmp()
方法并给出最大长度。它比strcmp()安全得多,至少可能不是。首先,std::string
没有sort
作为成员函数,因此您可能会使用std::sort
。其次,不能将std::string
传递给strcmp
。您可以使用c_str
成员函数,也可以直接使用普通运算符比较字符串(尽管这只提供双向比较,而不是strcmp
的三向结果)。第三,您的代码似乎依赖于从标准字符串类继承(或以其他方式扩展),这很少是一个好主意
std::sort(sig1.begin(), sig1.end());
bool compareTo2(std::string a,std::string b){
排序(a.begin(),a.end());
排序(b.begin(),b.end());
返回a
编辑:注意,这采取了一个稍微不寻常的步骤,即按值传递字符串。我们需要原始字符串的副本,这样我们就可以在不修改原始字符串的情况下对其进行排序,所以我只是通过传递值来获取副本,然后将收到的副本作为参数进行排序。否--至少可能不会。首先,std::string
没有sort
作为成员函数,因此您可能会使用std::sort
。其次,不能将std::string
传递给strcmp
。您可以使用c_str
成员函数,也可以直接使用普通运算符比较字符串(尽管这只提供双向比较,而不是strcmp
的三向结果)。第三,您的代码似乎依赖于从标准字符串类继承(或以其他方式扩展),这很少是一个好主意
std::sort(sig1.begin(), sig1.end());
bool compareTo2(std::string a,std::string b){
排序(a.begin(),a.end());
排序(b.begin(),b.end());
返回a
编辑:注意,这采取了一个稍微不寻常的步骤,即按值传递字符串