有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。

来源:互联网 发布:mac截图保存不在桌面 编辑:程序博客网 时间:2024/04/28 13:36
#include<assert.h>void Swap(char*start,char*end){while (start < end){*start ^= *end;*end ^= *start;*start ^= *end;start++;end--;}}void reverse(char *start, char*end){/*while (start < end){char*tmp = *start;*start = *end;*end = tmp;start++;end--;}*/Swap(start,end);}char*next_reverse(char*str){assert(str);char*start = str;char*end = str;while (*end != '\0'){while ((*end != ' ') && (*end != '\0')){end++;}reverse(start, end-1);if (*end == '\0')break;end += 1;start = end;}return str;}int main(){char ret[] = "student a am i";  reverse(ret, ret + strlen(ret) - 1);char* ret2 = next_reverse(ret);printf("%s\n",ret2);system("pause");}

0 0