码迷,mamicode.com
首页 > 编程语言 > 详细

改正字符数组中的内容

时间:2019-02-14 00:31:13      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:s函数   nbsp   eve   换行   art   scan   turn   include   strlen   

有一个字符数组的内容为:"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 != \0))
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\n",str);
60 
61     return 0;
62 }

 



改正字符数组中的内容

标签:s函数   nbsp   eve   换行   art   scan   turn   include   strlen   

原文地址:https://www.cnblogs.com/cuckoo-/p/10372430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!