解决 C++ Error: Invalid conversion from 'char' to 'const char*'

解决C++ Error: Invalid conversion from ‘char’ to ‘const char*’

在用递归方法反转字符串时发生了这个error(C++ Error: Invalid conversion from ‘char’ to ‘const char*’),代码如下。

//递归法反转字符串
#include
#include
#include
using namespace std;
string reverse(string str, int end){
	if (end == 0){
		return str[end];
	}
	return str[end]+reverse(str,end-1);
}
int main(){
	string str = "12345";
	string rev;
	rev = reverse(str,str.length()-1);
	cout<<rev<<endl;
	return 0;
} 

发生错误的原因是str[end]的类型是char不是string或者char*,因此无法与其他字符串进行连接运算,需要把char类型的str[end]转换为string类型。新建一个string类型的变量使用string容器的push_back方法,修改后的代码如下。

//递归法反转字符串
#include
#include
#include
using namespace std;
string reverse(string str, int end){
	if (end == 0){
		string s1;
		s1.push_back(str[end]);
		return s1;
	}
	return str[end]+reverse(str,end-1);
}
int main(){
	string str = "12345";
	string rev;
	rev = reverse(str,str.length()-1);
	cout<<rev<<endl;
	return 0;
} 

运行结果正常
解决 C++ Error: Invalid conversion from 'char' to 'const char*'_第1张图片

你可能感兴趣的:(小白学习笔记)