您的位置:首页 > 其它

任务三之规范文本(有错误,求助!)

2012-03-03 14:24 330 查看
这个程序中有错误,可是不知道是什么错误,该怎样改,老师呀,向您求助一下~~

/*(文件注释头部开始)
*程序的版权和版本声明部分
*Copyright (c) 2011,烟台大学计算机学院学生
*All rights reserved.
*文件名称:字符串中单词的重新排列
*作 者:2011级计114-3张宗佳
*完成日期:2011年3月3号
*版本号:vc.3
* 对任务及求解方法的描述部分
* 输入描术:输入一行字符串
* 问题描述: 输入一行字符,将其整理为规范的文本并输出,如输入" how old are you? I am 20. it is too old."
*输出: how old are you? i am 20. it is too old.
* 程序输出:将单词整理规范并输出
* 程序头部的注释结束
*/
#include<iostream>

using namespace std;

int main()
{
char str1[81],str2[81];//一行可以输入80个字符,所以定义次数组内有81个字符
int i = 0, n = 0, j, k;
bool isword = false;

gets(str1);//这里不cin,如果用cin的话,输入的字符串,遇到空格就会结束

while(str1[i]!='\0')//'\0'是字符串结束的标志,当str[i] = '\0'时,循环体结束
{
if(str1[i] == ' ')//如果字符是空格,就不是单词
{
isword = false;
}
else if(isword == false)//否则,如果前一个字符不是单词,那么从空格之后的第一个字符开始时一个单词
{
isword = true;
for(j = i;str1[j] != ' '; ++j)
{
str2
= str1[j];
++n;
}
str2
= ' ';

++n;
}
++i;
}
for(k = 0; k <= n; ++k)
{
cout << str2[k];
}
cout << endl;

return 0;
}为什么会出现这种结果.....谁来帮帮我?

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