您的位置:首页 > 其它

下学期第二周实验报告3(2)

2012-03-04 11:13 218 查看
实验目的:规范文本。(1)行首的第一个字符不能为空格。 (2)两个单词间只能有1个空格且必须有1个空格。 (3)标点符号前面是单词中的最后一个字母,后面有且只能有一个空格。

 

项目代码:

#include <iostream>

#include "string.h"

using namespace std;

int main()
{
char str[200];
cin.get(str, 100, '\n');

for(int i = 0, j = 0; str[i] != '\0'; i++)
{
j++;
}                                                //统计输入字符的个数

do
{
if(str[0] == ' ')
{
for( int k = 0; k <=j; k++)
{
str[k] = str[k + 1];
}
}
}while(str[0] == ' ');                           //去除行首的空格

for(int n = 0; n <= j; n++)
{
do
{
if(str
== ' ' && str[n + 1] == ' ')
{
for(int m = n; m <= j; m++)
{
str[m + 1] = str[m + 2];
}
}
}while(str
== ' ' && str[n + 1] == ' ');
}                                                //去除连续的多个空格,仅保留一个空格

for(int p = 0; p <= j; p++)
{

if((str[p] == ' ' && str[p + 1] == ',') || (str[p] == ' ' && str[p + 1] == '.') || (str[p] == ' ' && str[p + 1] == ';') || (str[p] == ' ' && str[p + 1] == '?') || (str[p] == ' ' && str[p + 1] == '!'))
{
for(int q = p; q <= j; q++)
{
str[q] = str[q + 1];
}
}
}                                                //保重标点符号紧跟单词的最后一个字母

for(int b = 0; b <= j; b++)
{
if((str == ',' && str[b + 1] != ' ') || (str[b] == '.' && str[b + 1] != ' ') || (str[b] == ';' && str[b + 1] != ' ') || (str[b] == '?' && str[b + 1] != ' ') || (str[b] == '!' && str[b + 1] != ' '))
{
for(int c = b;c < j; j--)
{
str[j + 1] = str[j];
}
str[b + 1] = ' ';
}
}                                                 //保证标点符号后面有一个空格

cout << str << endl;

return 0;
}


[b]运行结果:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c