C++ “我想替换字符”;a「;“有个性”;z";仅使用递归
我是一名编程新手,我想将此数组打印为字母“a”,应替换字母“z”,并打印更新后的字符串C++ “我想替换字符”;a「;“有个性”;z";仅使用递归,c++,function,recursion,definition,c-strings,C++,Function,Recursion,Definition,C Strings,我是一名编程新手,我想将此数组打印为字母“a”,应替换字母“z”,并打印更新后的字符串 #include <iostream> char strng(char[],int); using namespace std; int main() { char s[]="all in all"; int i=0; char result; //cout<< sizeof(s);
#include <iostream>
char strng(char[],int);
using namespace std;
int main() {
char s[]="all in all";
int i=0;
char result;
//cout<< sizeof(s);
result=strng(s,i);
cout<<result;
return 0;
}
char strng (char name[],int i) {
if(!name){
return (0) ;
}
else if(name[i]=='a'){
name[i]='z';
return (strng(name ,i++));
}
}
#包括
char strng(char[],int);
使用名称空间std;
int main(){
字符s[]=“全部”;
int i=0;
字符结果;
//cout您的函数实现太复杂且无效
例如在这句话中
if(!name){
return (0) ;
return (strng(name ,i++));
检查name
是否等于null ptr,同时需要检查name[i]是否等于null终止字符'\0'
if(!name[i]){
return (0) ;.
由于return语句中使用了post increment运算符
if(!name){
return (0) ;
return (strng(name ,i++));
该函数在递增之前使用相同的i
值调用自身
函数应返回指向修改后字符串的指针,该字符串的返回类型应为char*
如演示程序所示,该函数可按以下方式定义
#include <iostream>
char * replace_char( char *s, char source = 'a', char substitution = 'e' )
{
if ( *s )
{
if ( *s == source ) *s = substitution;
replace_char( s + 1, source, substitution );
}
return s;
}
int main()
{
char s[]="all in all";
std::cout << s << '\n';
std::cout << replace_char( s ) << '\n';
return 0;
}
#包括
#包括
#包括
void replaceChar(char*ptr,int len){
如果(len==0){
如果((*(ptr+len))=='a'){
(*(ptr+len))='z';
}
}
否则{
如果((*(ptr+len))=='a'){
(*(ptr+len))='z';
}
替换字符(ptr,len-1);
}
}
int main(){
字符str[]=“Mandar”;
put(str);
replaceChar(str,strlen(str)-1);
put(str);
}
请问问题是什么?函数完成后返回单个char
值0
,然后输出。需要在内部if
外部递归调用,结束检测应该是if(!name[i])
或if(name[i]=0)
Hi@VladfromMoscow,我想使用std::cout@MandarA没有太大的区别。