第7周 C语言程序设计(新2版) 练习1-19 颠倒字符串中的字符
来源:互联网 发布:广西南宁移动网络缴费 编辑:程序博客网 时间:2024/04/30 08:05
问题及代码:
/*将输入字符串s中的字符颠倒过来*/ #include <stdio.h> #define MAXLINE 1000 int getline(char line[],int maxline); void reverse(char s[]); main() { char line[MAXLINE]; //当前输入行 int len; while((len=getline(line,MAXLINE))>0) { reverse(line); printf("%s",line); }} /*颠倒输入字符串的字符*/ void reverse(char s[]) { int i,j; // j为第一个字符下标,i为最后一个字符下标 char c; i=0; while(s[i]!='\0') i++; //输入一个字符数组,直到遇到'\0'为止 i--; //去掉最后一个'\0'符号 if(s[i]=='\n') i--; //此时的i已经是达到最大 j=0; /*每置换一次,即第一个与倒数第一个互换, 之后,倒数第二与第二互换,直到j>=i停止 */ while(j<i){ c=s[j]; s[j]=s[i]; s[i]=c; i--; j++; } } /*输入一行,并返回其长度*/ int getline(char s[],int lim) { int c,i,j; j=0; //j记录复制到字符串s中字符的个数 for(i=0;(c=getchar())!=EOF&&c!='\n';i++) //不再检查字符数是否超出数组s的限制 if(i<lim-2) //数组s的最后一个下标是lim-1; { s[j]=c; j++; } if(c=='\n') { s[j]=c; j++; i++; } s[j]='\0'; //字符串末尾以'\0'为结尾不能漏了 return i; }
运行结果:
学习心得:
颠倒字符串,注意先去掉'\0'和'\n'.
知识总结:
要颠倒字符串,可以通过循环判断第一个j与最后一个下标i的大小,之后再不断减少、增加对比
0 0
- 第7周 C语言程序设计(新2版) 练习1-19 颠倒字符串中的字符
- 第7周 C语言程序设计(新2版) 练习2-4 删除s1中与s2相匹配的字符
- 第7周 C语言程序设计(新2版) 练习2-5 返回最早出现匹配字符的位置
- 第7周 C语言程序设计(新2版) 练习1-7 打印一个EOF值
- 第7周 C语言程序设计(新2版) 练习1-12 每行一个单词打印输入
- 第7周 C语言程序设计(新2版) 练习1-20 制表符换成适当数目空格
- 第7周 C语言程序设计(新2版) 练习2-3 字符串转换成等价整型值
- 第7周 C语言程序设计(新2版) 例题1 统计输入的字符数
- 第7周 C语言程序设计(新2版) 练习1-14 打印输出各个字符出现频度的直方图(输出结果有问题)
- 第7周 C语言程序设计(新2版) 练习1-17 打印长度大于80个字符的所有输入行
- 第7周 C语言程序设计(新2版) 练习1-22 在第n列将较长输入行折短
- 第10周 C语言程序设计(新2版) 练习3-2 复制字符串,不可显示符号转为可示
- 第7周 C语言程序设计(新2版) 例题1.9 字符数组(打印最长输入行)
- 第7周 C语言程序设计(新2版) 练习2-1 确定各种类型变量的取值范围
- 第7周 C语言程序设计(新2版) 练习1-8 统计空格、制表、换行数程序
- 第7周 C语言程序设计(新2版) 练习1-10 输入复制到输出,三种格式替换
- 第7周 C语言程序设计(新2版) 练习1-13 打印输入单词长度的直方图(水平与垂直)
- 第7周 C语言程序设计(新2版) 练习1-18 删除空格制表符 (程序不能正确运行)
- eclipse运行go文件,报错“Resource donesnt have a corresponding Go paceage.”
- 【C++】:C++map的妙用之 计算字符串加和
- 毕设之华美路由器实现无线视频监控
- 人工智能之人工神经网络
- ubuntu设置vim高亮和缩进
- 第7周 C语言程序设计(新2版) 练习1-19 颠倒字符串中的字符
- Java学习笔记(七)之―认识Java API
- 存储过程详解
- 在Android studio IDE中采用自己编写的Android.mk
- Java基础之static和final的用法
- 教你使用Spy++查看软件的流氓行径(talimama/Dandelion.exe)
- 可修改UID的白卡,请问为什么一般读写器不能修改这种卡的UID,必须要特定的读写器才能修改?
- iOS基础开发-九宫格显示数据页面
- 排序-快速排序(c)