参考:
(86条消息) c语言子函数返回字符串的正确方式_xk-wang的博客-CSDN博客_c语言子函数返回字符串
函数返回char* 的解决方案 - wiessharling - 博客园 (cnblogs.com)
输入char* 的字符串,输出char* 的字符串的反转。
之前踩的一个坑是,
如果定义了char* str=“xxx”,则不能对str[i] 的值进行修改,因为此时str是一个字符串常量;
如果定义了char str[]="xxx",则可以对str[i] 的值进行修改,因此此时str是一个字符数组。
如果要在子函数返回一个char * p,需要这么做;
char* p = (char*)malloc(len);
strcpy(p, newstr);
整体函数为,md我真的太蠢了,我居然才知道,指针这块还是薄弱了。
#include <bits/stdc++.h>
using namespace std;
char* str(char* str){
int i,j;
char tmp;
int len = strlen(str);
char newstr[len];
//char newstr[] = "abc";
for(i=0; i< strlen(str); i++){
newstr[i] = str[len-1-i];
}
//str = newstr;
for(i=0; i< strlen(newstr); i++){
cout<<newstr[i]<<" ";
}
char* p = (char*)malloc(len);
strcpy(p, newstr);
return p;
}
int main() {
char* a = "123456y";
int i,j;
char tmp;
int len = strlen(a);
char b[len];
char* res = str(a);
cout<<endl;
for(i=0; i< strlen(res); i++){
cout<<res[i]<<":";
}
return 0;
}
|