匿名用户

1级

2010-11-26 回答

#include

#include

void main()

{

char string1[200]; //用于存放输入的字符串

char string2[200]; //用于存放倒序后的字符串

int invertion(char *ch1, char *ch2); //声明函数

printf("Please input a sentences:\n");

gets(string1); //这里不要用scanf,因为scanf遇到空白符就会结束

printf("Your inputed sentences is:%s\n", string1);

invertion(string1, string2);

printf("The invertion sentences is:%s\n", string2);

getchar();

}

int invertion(char *ch1, char *ch2)/*char1 接收实参传过来的原字符串指针 char2 接收倒序后的新字符串返回主函数*/

{

int count = 1,num=0;

char *ch=ch1;

for(;*ch1!='\0';ch1++)// 统计单词个数

{

if(*ch1==' ')

count++; //单词数等于空格数加1,前面把count初始化为1就是这个原因

if(*ch1==' '&&*(ch1+1)==' ') //防止单词之间有2个空格符而多计数了一个单词数

count--;

}

printf("count = %d\n", count);

ch1=ch1-1;//前面的ch1经过循环之后已经指向字符串的结束标志'\0',这里减1是为了让它指向字符串的最后一个字符

while(ch1>=ch)//让ch1从指向string1的最后一个字符开始往前递减,当减到字符串的首个字符时结束

{ int j=num; //保存num,后面要用到这个数

if(*ch1!=' ')//记录每个单词的长度 ,以空格符作为标志

num++;

else // 知道了每个单词的长度之后,就可以用循环将字符以单词为单位写入数组string中,这样的话单词内就不会倒序了

{

for(int i=1;i<=j;i++,num--)

*(ch2-num)=*(ch1+i);

*ch2=*ch1;

}

ch1--;

ch2++;

}

for(int i=1;i<=num;i++,ch2++)//因为string1的第一个单词前没有空格符,肯定输不出来,所以单独用一个循环将其输出

*(ch2-num)=*(ch1+i);

*ch2='\0'; //string2的结束标志

}

这是我做了修改之后的程序,看看符不符合要求!!

你的那个定义的变量太多,很混乱!循环语句太乱了,if判断条件与循环条件不正确

已经做了修改,看符合要求不,不行的话,再说!!!

又做了修改了,看符合要求不??

不会吧,我调试通过还运行了!!不然怎么会发上来啊!!至于算法问题我给注释吧,你看看!!

c语言里如何倒序输出字符,倒序输出字符 C语言相关推荐

  1. c语言里有js的预编译环节吗,C语言第十一讲,预处理命令.

    C语言第十一讲,预处理命令. 一丶预处理简介 什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件 这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理.提前 ...

  2. c语言里判断回文数的函数,(C语言)回文数的判断

    问题描述: 判断一个数是否为回文数: 121: 12321: 1234321: 程序分析: 1.回文数(palindromic number):是指一个数的最高位和最低位上的数相等,第二高位与次低位上 ...

  3. C语言学习——从零开始学编程(第二篇:C语言知识总括)

    本节将介绍:C语言的基本框架和大部分知识的浅了解(记得先看目录哦~~) 前言--小颖的话 提示:本文篇幅长,知识点多,可以分开学习,记得收藏点赞哦~ 一.数据类型 1.C语言中的关键字 2.不同类型所 ...

  4. c语言输出字符的utf码,C语言里如何把GBK码转换为UTF8?

    C语言里如何把GBK码转换为UTF8? (2013-03-04 19:41:31) 标签: it 一.利用iconv函数族进行编码转换 在LINUX上进行编码转换时,既可以利用iconv函数族编程实现 ...

  5. 5.29 C语言练习(计算数字个数:从键盘输入一串字符,输出字符串里的数字字符数。)

    [练习] 题目要求:从键盘输入一串字符,输出字符串里的数字字符数. #include "stdio.h" int main() {char a[100];int i,num=0;g ...

  6. c语言输出换行字符,float_printf格式换行_c语言printf里如何换行

    信息从计算机的外部设备流入计算机称为输入.printf格式换行 从计算机主机流向外部设备称为输出. C语言中没有输入输出语句,而是由输入输出函来实现的输入/输出的. C标准函数库中包含的常用输入输出函 ...

  7. C语言中如何输出字符的编码,GB2312中汉字字符的编码在C语言中的输出测试

    C语言中ASCII编码表中每一个字符对应的编码,与数字其实是完全一样的. printf("%d\n",1);          对应的输出是1 printf("%c\n& ...

  8. C 语言里的字符串---字符数组

    //      实际上, c中并没有字符串这种数据类型,  也就是说c是没有像java, .net等其他高级语言中常用的String类型.             首先要强调:       a. c语 ...

  9. c语言用指针分离字符串数字与字符,c语言实验报告,指针的应用分别输出字符串中的数字和其他字符(共10篇).docx...

    c语言实验报告,指针的应用分别输出字符串中的数字和其他字符(共10篇) C语言程序设计实验报告 1实验目的 ⑴掌握指针的概念,会定义和使用指针变量: ⑵能正确使用变量的指针和指向变量的指针变量: ⑶能 ...

  10. c语言英文字母占用字节数,字符型变量占用字节数 c语言里字符型数据占多少字节...

    一个字符型变量所占内存的字节数是一个字符型变量所占内存的字节数是 1个字节. 字符与字符型变量有什么区别,都占几个字节 (一)"字节"的定义 字节(Byte)是一种计量单位,表示数 ...

最新文章

  1. GitHub标星2.6万!Python算法新手入门大全
  2. Linux 如何加载并口/打印口驱动
  3. 全局事件总线 (GlobalEventBus)
  4. 在JScript中运行应用程序
  5. Facebook 研发可穿戴脑机接口,读心术成真?
  6. 写你自己 android 多通道打包工具 可以包libs和.so文件
  7. JS 页面跳转,参数的传递
  8. android面板驱动的使用方法,高通平台Android 驱动层LCD显示屏驱动移植说明和相关工具...
  9. 我国芯片各细分领域龙头名单
  10. 《仿美团SSM版》项目研发总结
  11. 英伟达账号为什么登录不了_n卡的geforce experience登录不了怎么办?
  12. Bootstrap实战(第一弹:栅格实现5等分或8等分)
  13. 1.静态方法只能访问静态成员(包括变量和方法不能直接访问实例成员,除非使用对象调用2.实例方法既可以访问静态成员,也可以访问实例成员
  14. MT7921:WIFI、AP、BT基础知识
  15. 解决office2010安装过程出错的问题
  16. el-table表头自定义总计
  17. 计算机图形学--扫描线填充算法
  18. U3D-3D MAX Biped导出.fbx到Unity的Humanoid的骨架不匹配(Disable Triangle Pelvis, Enable Triangle Neck)
  19. ROS学习笔记(八)—— moveit!概述
  20. SecureCRT和SecureFx的使用

热门文章

  1. 非常好的SQL格式化工具SQL Pretty Printer
  2. 横向自动轮播图html代码,JavaScript实现PC端横向轮播图
  3. 用友U8生产不良退料案例教程
  4. Maven打包问题:repackage failed: Unable to rename解决
  5. lisp 焊缝_图纸中的焊接符号
  6. ssm+校园疫情申报系统 毕业设计-附源码221228
  7. 19.802.11物理层技术_关键技术以及物理层的速率
  8. 设置网页打印的时候,如何让指定区域不打印
  9. 本地账户用户文件夹重命名
  10. win11和win10哪个好?