Reverse String反向输出字符串

来源:互联网 发布:cnc数控编程软件下载 编辑:程序博客网 时间:2024/06/07 05:54
首先: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+1for (i = 0; i < n; i++){*(r + n - 1 - i) = *(s + i);}        r[n] = '\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;    }};



1 0
原创粉丝点击