改正字符数组中的内容

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 != ))
39         {
40             ++cur;
41         }
42         //逆转子串
43         reverse_string(sub_start, cur - 1);
44         //走到下一个子串的起点
45         while (*cur ==  )
46         {
47             ++cur;
48         }
49     }
50 }
51 
52 int main()
53 {
54     char str[100];
55     //scanf("%s", str);
56     //scanf函数遇到空格和换行自己结束了,这里应该使用gets函数
57     gets(str);
58     reverse(str);
59     printf("%s
",str);
60 
61     return 0;
62 }

 













以上是关于改正字符数组中的内容的主要内容,如果未能解决你的问题,请参考以下文章

片段中ListView的setOnItemClickListener

JavaScript 代码片段

求C语言高手帮忙。

JavaScript笔试题(js高级代码片段)

对数组中的字符串进行排序,使其稀疏

web代码片段