c程序设计语言第一章4

(昨天网络出现了问题,导致这篇没来得及上传,再次补上,今晚照常上传笔记)

练习1.19编写函数r e v e r s e ( s )将字符串s中的字符顺序颠倒过来。使用该函数编写一个程序,每次颠倒一个输入行中的字符顺序

 1 /*************字符串s中的字符顺序颠倒过**********************/
 2 #include <stdio.h>
 3 #include <stdlib.h>
 4 #define MAXLENGTH 100//字符串最大值
 5 int getline(char[],int limit);
 6 void reverse(char[]);
 7 int main()
 8 {
 9     char str[MAXLENGTH];
10     int len=0;
11     while((len=getline(str,MAXLENGTH))>0)
12     {
13         reverse(str);
14         printf("%s\n",str);
15     }
16     return 0;
17 }
18 int getline(char str[],int limit)
19 {
20     int c;
21     int i;
22     for(i=0;i<(limit-1)&&(c=getchar())!=EOF&&c!='\n';i++)
23     {
24         str[i]=c;
25     }
26     if(c=='\n')
27     {
28         str[i]=c;
29         ++i;
30     }
31     str[i]='\0';
32     return i;
33 }
34 void reverse(char str[])
35 {
36     int i,j;
37     char temp;
38     for(i=0;str[i]!='\0';i++);//找到字符串的末尾
39     --i;
40     if(str[i]=='\n')--i;//不计换行符,此时i记录字符串的尾部
41     j=0;//j记录字符串最开始的位置
42     while(j<i)
43     {
44         temp=str[i];//交换字符
45         str[i]=str[j];
46         str[j]=temp;
47         ++j;
48         --i;
49     }
50 }

运行结果:

posted on 2014-04-30 19:30  会敲键盘的猩猩  阅读(156)  评论(0编辑  收藏  举报