/****************************************************** Name: reverse_str.c Copyright: kernelxu Author: kernelxu Date: 29-08-05 12:10 Description: reverse astring allocated in an array 将一个存储在数组中的字符串倒置。 My E_mail: kernelxu@hotmail.com ******************************************************/ #include <stdio.h> #include <string.h> void reverse_str(char * ch); void reverse_str2(char *ch); int main(void) { char c[] = "Can you reverse me?"; printf("original string c: \n%s\n", c); reverse_str(c); printf("reversed string after calling reverse_str: \n%s\n", c); reverse_str2(c); printf("reversed string after calling reverse_str2: \n%s\n", c); system("pause"); return 0; } void reverse_str(char *ch) /*使用中间变量*/ { int len; int i; len = strlen(ch)-1; char ctemp; for(i = 0; i < len-i; i++) { ctemp = ch[i]; ch[i] = ch[len-i]; ch[len-i] = ctemp; } ch[len+1] = 0; } void reverse_str2(char *ch) /*不用中间变量*/ { int len; int i; len = strlen(ch)-1; char ctemp; for(i = 0; i < len-i; i++) { ch[i] = ch[i] ^ ch[len-i]; ch[len-i] = ch[i] ^ ch[len-i]; ch[i] = ch[i] ^ ch[len-i]; } ch[len+1] = 0; }
|