实现字符串反序

来源:互联网 发布:淘宝缩阴棒有用吗 编辑:程序博客网 时间:2024/05/17 05:02

其实,我之前看书看到过有好的办法的,但是时间久了不记得了。。下面是自己编写的代码。。。比较low

#include<iostream>using namespace std;char *reverse(char *str);void main(){char *a="yang hai lin";cout<<reverse(a)<<endl;}char *reverse(char *str){int i=0;char *save,*p0;save=(char *)malloc(sizeof(char)*strlen(str));p0=str;while(*str++)continue;str-=2;  //这里指针指向了'\0'后面的一个单元格for(;p0!=str;str--)save[i++]=*str;  save[i++]=*str;  save[i]='\0';  return save;}
各种算指针指到哪里了啊,

void reverse(char s[]){ char c; int i,j; j = strlen(s) - 1; for(i = 0;i < j;i ++) {  c = s[i];  s[i] = s[j];  s[j] = c;  j --; }}
这个比较好,直接俩俩交换位置了


还有就是直接有函数调用!!!strrev(a)

#include<iostream>using namespace std;char *reverse(char *str);void main(){char a[]="yang hai lin";//char *a="yang hai lin";cout<<reverse(a)<<endl;cout<<"~~~~~~~~~~~~~~~\n";cout<<strrev(a)<<endl;}
一开始直接运行内存报错!!!想想,我又犯错误了,字符串指针所指向的是“yang ”,这是字符常量,不允许修改的!


总结,以前看过的为啥现在看到还是没有能写出最佳的代码呢???还是要不断积累的啊






0 0
原创粉丝点击