首页 > 代码库 > c程序设计语言第一章4

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 }

运行结果: