任务三

/*(3‐1)输入一行字符,统计其中有多少个单词。每两个单词之间以空格(可能多个)隔
开,或者由标点符号(只考虑  , . ; ? !共 5 种)隔开。  如输入: How old are your?   I am   
20.  输出:There are 7 words in the line.   【知识点:字符数组】
*  算法说明:
 
*/
#include <iostream>  
#include "string.h"   
using namespace std;  
int main()  
{   
 
}  
 
/*(3‐2)所谓规范的文本是指:行首的第一个字符不能是空格;两个单词间只能有 1 个空
格且必须有 1 个空格;标点符号前面是单词中的最后一个字母,后面有且只能有一个
空格。
题目要求:输入一行字符,将其整理为规范的文本并输出。标点符号只考虑  , . ; ? !共 5 种。
如输入“:      How    old     are your?    I am     20.It is too old.   ”输出:“: How old are your?
I am 20. It is too old.”
处理后结果解读:即要求输出的文本开头无前导空格,两个单词间如果有多个空格时只保留
1 个,标点符号后没有空格时,要加上 1 个。
提示:可以设置另一个字符数组,逐个检查输入的字符数组,保留的字符复制过去,多余的
空格不复制,增加需要补充的空格。当然也可以直接在原字符数组上做。
*  算法说明:

#include <iostream>
#include "string.h"
using namespace std;
void check_word(char ch[100]);
int count=0;
int main()
{
	char ch[100];
	
	cin.getline(ch,100);

	check_word(ch);

	cout<<"There are "<<count<<" words in the line."<<endl;
	
	return 0;
}
void check_word(char ch[100])

{

	for(int i=0;ch[i]!='\0';i++)
	{
		if((ch[i]==' '||ch[i]==','||ch[i]==';'||ch[i]=='.'||ch[i]=='!'||ch[i]=='?')&&ch[i+1]!=' ')count++;
	}
}
	
	


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值