C++程序设计实验报告(二十九)---第二周任务三(3-1)

本文介绍了一种通过字符数组统计输入字符串中单词数量的方法,详细解释了如何利用字符与标点的关系进行计数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 第二周报告3:字符数组

实验目的:输入一行字符,统计其中有多少个单词
实验内容:输入一行字符,统计其中有多少个单词。每两个单词之间以空格(可能多个)隔
开,或者由标点符号(只考虑 , . ; ? !共5 种)隔开。

* 程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2012烟台大学计算机学院学生
* All rights reserved.
* 文件名称: array.cpp
* 作 者: 刘镇
* 完成日期: 2012 年 2 月 27 日
* 版 本 号: 1.026

* 对任务及求解方法的描述部分
* 输入描述:输入一行字符

* 问题描述:利用字符与标点的关系,进行输出单词数量。

* 程序输出:单词数

* 程序头部的注释结束

#include<iostream>

#include"string.h"

using namespace std;

int main()
{
	char line[50];
	int num = 0;

	cout << "Enter your words:" << endl;
	
	gets(line);

	cout << "Entered the line is:    " << line << endl;
	
	for(int i = 0; line[i] != '\0'; ++i)
	{	
		if((line[i] != '?' && line[i] != ' ' && line[i] != ';' && line[i] != '.' && line[i] != '?') && (line[i+1] == ' ' || line[i+1] == '?' || line[i+1] == '!' || line[i+1] == ';' || line[i+1] == '.'))
		{
			num++;
		}
		
		else
		{
			continue;
		}	
		
	}
	
	cout << "There are " << num << " words in the line." << endl;
	
	return 0;
}

运行结果:
 
 
经验积累:
1、问题有不少疑问,尽管结果是对的,但有问题,首先不能实现输入任意字符的功能,思量再三还未解决。再一个问题是对于库函数中string.h和<string>在运行时并不完全相等。最后实现一个字符是非标点的代码中,用 || 和用&&结果出乎意料。需要进一步解决。
2、可否将if语句处简化,但简化后出现错误!
上机感言:
此问题在编写时,并不如意,尽管思想已经明白,思路也较清晰,但在编码实现时总有错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值