翻转

    xiaoxiao2023-11-04  181

     

     

     

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

    #include <stdio.h> #include <string.h> #include <assert.h> char * fanzhuan(char *str) { assert(str); char *l = str; char *r = str; while(*r != '\0') { r++; } while(l < r-1) { char tmp = *l; *l = *(r-1); *(r-1) = tmp; l++; r--; } l = str; r = str; while(*r != '\0') { while(*r != 32 && *r != '\0') { r++; } char *p = r; while(l < r-1) { char tmp = *l; *l = *(r-1); *(r-1) = tmp; l++; r--; } if(*p == '\0') { return str; } l = p+1; r = p+1; } return str; } int main () { char a[] = "student a am i"; char *ret = fanzhuan(a); printf("%s\n",ret); return 0; }

     

    最新回复(0)