字符串逆序

来源:互联网 发布:工业数据采集 求 编辑:程序博客网 时间:2024/05/19 18:42
//字符串逆序/*Author :blainData   :2015/08/25*/#include <stdio.h>#include <malloc.h>
//新创建等长度的数组,将原数组从末字符一次放入新数组
char *Reverse_String(char *src){if(NULL==src)return src;char *p = src;int size = 0;while(*++p){size++;}p--;char * store=(char*)malloc((size+1)*sizeof(char));char * q = store;while(p>=src){*q++= *p--;}*q='\0';return store;}
//原地交换字符,使用了第三个变量char *swap_reverse(char *s){if(NULL==s)return s;char *left = s;char *right = s;char temp = NULL;while(*right){right++;}right--;while(right>left){temp = *right;*right-- = *left;*left++ = temp;}return s;}
//原地交换字符,不使用第三个变量char *reverse(char *s){if(NULL==s)return s;char *left = s;char *right = s;while(*right){right++;}right--;while(right>left){ *left =  *left^*right; *right = *left^*right; *left = *left++^*right--;}return s;}void ReversePrint(char *s){if(*(s+1)!='\0')ReversePrint(s+1);printf("%c\n",*s);}int main(void){char a[] = "hello";//char *dec = Reverse_String(src);//printf("%s\n",dec);//char *dec1 = swap_reverse(a);//printf("%s\n",dec1);//char *dec2=reverse(a);//printf("%s\n",dec2);ReversePrint(a);return 0;}

0 0
原创粉丝点击