(昨天网络出现了问题,导致这篇没来得及上传,再次补上,今晚照常上传笔记)
练习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 }
运行结果:
时间: 2024-10-07 12:29:45