国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > php教程 > 字符串翻转的两种方法(1:利用额外空间 2:交换)

字符串翻转的两种方法(1:利用额外空间 2:交换)

来源:程序员人生   发布时间:2015-05-29 08:01:41 阅读次数:2343次
#include<iostream> using namespace std; #define STRLENTH 100 char *str_reverse1(char *str) { char temp[STRLENTH];//字符数组:寄存逆序后的字符 char *p = str; //字符指针:指向最后1个非''字符 int i = 0; /*找到最后1个非''字符并使p指向它*/ while(*p != '') { p++;//while循环以后p指向''p--后指向数组的最后1个字符(非'') } p--; /*将逆序后的字符寄存在临时空间temp中*/ while(p != str) { temp[i] = *p; i++; p--; } temp[i] = *p; //while循环以后第1个字符未寄存进去 temp[i+1] = '';//数组末尾f赋'' /*将逆序以后的字符拷贝到原数组中*/ strcpy(str,temp); return str; } char *str_reverse2(char *str) { char *p = str; //字符指针:指向最后1个非''字符 char *ret = str;//字符指针: 用于返回数组的首地址 /*找到最后1个非''字符并使p指向它*/ while(*p != '') { p++; } p--; /*对称的字符交换---->到达字符的翻转*/ char tmp; while(str < p) { tmp = *str; *str = *p; *p = tmp; str++; p--; } return ret; } int main() { char str[] = "abcdefghij"; cout<<str_reverse2(str)<<endl; return 0; }

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生