您的位置:首页 > 其它

Reverse String反向输出字符串

2017-01-09 18:57 162 查看
首先:runtime error的原因
 一种是内存错误吧,例如访问了未定义的某块内存空间,int arr[8];但是访问了arr[8]这个元素。或者int *n = NULL; *n = 10;这种也会报内存错吧。还有就是有endless loop吧,可能没有能使程序跳出某循环的条件存在。

方法一:

程序:

char* reverseString(char* s) {
int i,n;
n = strlen(s);
char *r = (char*)malloc(sizeof(char)*(n+1));//注意内存个数n+1
for (i = 0; i < n; i++)
{
*(r + n - 1 - i) = *(s + i);

}
r
= '\0';//注意而且必须放在循环外面!!!
return r;
}

方法二;

C/C++ strlen(str)和str.length()和str.size()都可以求字符串长度,其中str.length()和str.size()是用于求string类对象的成员函数,strlen(str)是用于求字符数组的长度,其参数是char*

char* reverseString(char* s) {
int i=0,n;
n = strlen(s)-1;
while (i<n)
swap(s[i++], s[n--]);
return s;
}
而在c++中:

class Solution {
public:
string reverseString(string s) {
int i = 0, j = s.size() - 1;//或者s.length
while(i < j){
swap(s[i++], s[j--]);
}

return s;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: