改正字符数组中的内容
Posted cuckoo-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了改正字符数组中的内容相关的知识,希望对你有一定的参考价值。
有一个字符数组的内容为:"student a am i",
请你将数组的内容改为"i am a student".
要求:
不能使用库函数。
只能开辟有限个空间(空间个数和字符串的长度无关)。
student a am i
i ma a tneduts
i am a student
1 #include<stdio.h>
2
3 void reverse_string(char* start, char* end)
4 {
5 while (start < end)
6 {
7 char temp = *start;
8 *start = *end;
9 *end = temp;
10 ++start;
11 --end;
12 }
13 }
14
15 int mystrlen(char* str)
16 {
17 int count = 0;
18 while (*str)
19 {
20 count++;
21 ++str;
22 }
23 return count;
24 }
25
26 void reverse(char* str)
27 {
28 //整体逆转
29 char* start = str;
30 char* end = str + mystrlen(str) - 1;
31 char* cur = str;
32 reverse_string(start, end);
33 //局部逆转,子串逆转
34 while (*cur)
35 {
36 //子串的起点和终点
37 char* sub_start = cur;
38 while ((*cur != ‘ ‘) && (*cur != ‘