有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
2017-05-07 13:01
906 查看
有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”.
要求:不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
思路:这个字符串并不是把原来数组倒序过来就可以,因为每个单词也要逆序,因此可以先把整个字符串逆序,然后再分别逆序每个单词,这样就可以了。
#include<stdio.h> #include<assert.h> int my_strlen(const char *str) { assert(str); int len = 0; while (*str++) { len++; } return len; } void reverse(char *start,char *end) { assert(start); assert(end); while (start < end) { char *tmp = *start; *start = *end; *end = tmp; start++; end--; } } void str_reverse(char *arr) { int len = my_strlen(arr); reverse(arr, arr + len - 1); while (*arr) { char *tmp = arr; while ((*arr != ' ') && (*arr != '\0')) { arr++; } reverse(tmp, arr-1); if (*arr == ' ') { arr++; } } } int main() { char arr[] = "student a am i"; str_reverse(arr); printf("%s", arr); return 0; }
相关文章推荐
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。 提交
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student". 要求: 不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
- 一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student"
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
- C语言:字符数组的内容为;tneduts a ma i;,内容改为i am a student.只能开辟有限个空间
- [置顶] 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student"
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i am a student".
- 有一个字符数组的内容为:"student a am i", 请你将数组的内容改为"i am a student"
- 有一个字符数组的内容为:"student a am i",请你将数组的内容改为"i ama student".
- C语言:字符数组的内容为;tneduts a ma i;,内容改为i am a student.只能开辟有限个空间
- 有一个字符数组的内容为:"student a 4000 am i",请你将数组的内容改为"i am a student".