E0413: 不存在从 “std::string“ 到 “const char *“ 的适当转换函数

时间:2025-04-19 07:46:30

问题来源:PAT乙级1048

string A, B;
cin >> A >> B;

if(strcmp(A,B)<0){

}
//错误代码: E0413: 不存在从 "std::string" 到 "const char *" 的适当转换函数

错误原因:

E0413: 不存在从 "std::string" 到 "const char *" 的适当转换函数
if(strcmp(A,B)<0){}
即在c++中,对于string型不可以使用strcmp()函数,只有char*类型才可以
同样,char*类型不可以使用string类型的string+=,只有string类型才可以
即,不可以让字符串进行类似整形的数值运算

如果需要使用string类型的特性功能,可以调用length()函数

//使用length()函数进行长度比较
if (() < ()) {
	A += string(() - (), '0');
}
else if (() > ()) {
	B += string(() - (), '0');
}