任務三

/*(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++;
	}
}
	
	


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章