1.纯代码截屏
2.代码解说
//若不加注释,则代码行加符号总共为40几行,关键的处理代码行只有10行
#include <stdio.h>
#include <string.h>
int main()
{
//定义一个结构体,用于存放输入中的单词和空格数量 (输入的英文语句一定可看成是由N对“m(m可为0)个空格+1 个单词”单元构成)
struct A{
char s[50];//存放本单元的单词
unsigned int SpaceCount;//表示本单元空格的数量
};
struct A Data[30] = {{"\0",0}};//开辟30个单元的该数据结构体,且将所有数组元素的值初始化为0
char ch = 0,IsZiMu = 0;//IsZiMu用于标志本次从键盘中接收到的数据是否为字母,每次接收到字母在进行处理后都将IsZiMu置为1,每次接收到空格在进行处理后都将IsZiMu置为0,并且通过这个标志可以判断到上一次接收到的数据是否为字母
int num = 0,i = 0;//num用于标志输入的第几个单元(“m(m可为0)个空格+1个单词”)
while((ch = getchar()) != '\n')
{
if(ch == ' ')
{
if(IsZiMu == 1)//判断是否开始输入了新的单元
num++;
IsZiMu = 0;
i = 0;
(Data[num].SpaceCount)++;
}
else
{
IsZiMu = 1;
Data[num].s[i++] = ch;
}
}
printf("put:");
while(num >= 0)
{
i = Data[num].SpaceCount;
printf("%s",Data[num].s);
while(i > 0)
{
putchar(' ');
i--;
}
num--;
}
printf("*\n");
}
3.运行结果演示
版权声明:本文为weixin_43776284原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。