简单练习—字符串反转

来源:互联网 发布:大淘营淘宝复制专家 编辑:程序博客网 时间:2024/06/05 16:53

问题:有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".

要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。

#include<stdio.h>#include<assert.h>int my_strlen(const char* str){assert(str);const char* eos = str; while(*eos++){  ;}return (eos-str-1);}void reverse_str(char* left,char* right){assert(left);assert(right);while(left<right){int t = *left;*left = *right;*right = t;left++;right--;}}void reverse(char* arr){while(*arr){char *left = arr;char *right = NULL;while((*arr!='\0')&&(*arr!=' ') ){arr++;}right = arr-1;reverse_str(left, right);if(*arr!='\0')   arr++;}}int main(){char arr[] = "student a am i";int ret = my_strlen(arr);reverse_str(arr,arr+ret-1);//先反转正个字符串 reverse(arr);//再对子字符串进行反转 printf("%s\n",arr);return 0;}*/




0 0
原创粉丝点击