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

本文介绍了一个简单的C++程序,用于将输入的句子进行标准化处理,包括去除行首空格、调整单词间的空格数量以及规范标点符号的位置。

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

第二周报告3-2:句子的标准化

实验目的:将句子标准化。
实验内容:输入一行字符,要求指:行首的第一个字符不能是空格;两个单词间只能有1 个空
格且必须有1 个空格;标点符号前面是单词中的最后一个字母,后面有且只能有一个
空格。

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

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

* 问题描述:......

* 程序输出:按照标准化输出输入的句子。

* 程序头部的注释结束

#include<iostream>

#include"string.h"

using namespace std;

int main()
{
	char line1[100], line2[100];
	
	cout << "Enter your words:" << endl;
	
	gets(line1);
	
	int i;
	
	for(int j = 0; j <= 100; )
	{
		for(i = 0; i <= 100; ++i)
		{
			if(j == 0)
			{
				if(line1[i] == ' ')
				{
					continue;
				}
				
				else
				{
					line2[j] = line1[i];
					++j;
					continue;
				}
			}
			
			else
			{
				if(line1[i] == ' ' && (line1[i+1] == ' ' || line1[i+1] == '?' || line1[i+1] == '!' || line1[i+1] == ',' || line1[i+1] == '.'))
				{
					continue;
				}
				
				else if((line1[i] == '?' || line1[i] == '!' || line1[i] == ',' || line1[i] == '.') && (line1[i+1] != ' '))
				{
					line2[j] = line1[i];
					line2[j+1] = ' ';
					j = j + 2;
				}
				
				else
				{
					line2[j] = line1[i];
					++j;
				}
			}
		}
	}
	cout << "The new line is:" << line2 << endl;
	return 0;
}


运行结果:


经验积累:

1、问题的拆分,将问题分为3或4个顺序结构的小问题,即开头处的空格处理,中间句子出现的多空格,句尾处标标准化处理。

2、这个问题可以将第一个问题单独做一个循环,接下来处理后续问题。


上机感言:

还是灵感和素养的积累,大的思路与方向是需要标准化处理的,当你有对问题的处理思路,不管问题有多复杂,都可以有思路,但灵感是将问题具体化实现。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值