| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 751 人关注过本帖
标题:[求助]不明白了...
只看楼主 加入收藏
jiruanl062
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-11-6
收藏
 问题点数:0 回复次数:5 
[求助]不明白了...

写一个程序,最长读入100个字符的句子.对这个句子进行调整,输出间距相等(单词间只有一个空格,有多余就缩进).句子以大些字母开头,句子中所有字母都小写(有大些就转换成小写)然后以'.'(句点)结束.将换行符视为一个空格,将任意多个换行符号都视为一个空格..

用string 类写..
我自学的C++ ,,看到这里不知道怎么做了
哪位大侠帮帮呀.写来让学习下

比如 这样
输入:
the key
IS 123456789.
输出:
The key is 123456789.

搜索更多相关主题的帖子: 空格 key The 
2007-11-14 16:52
jiruanl062
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-11-6
收藏
得分:0 

#include<iostream>
#include<string>
using namespace std;
int main()
{ string line;
char copy_line[100];
getline(cin,line,'.');

//输入一段话(英文).以句号('.')结束
//字符处理
//首字母变大写,除首字母外所有字母都小写
//只留一个空格,如果有两个或以上.则只显示一个空格
//'.'号前的'\n'都视作空格,如上,只显示一个空格.
//--------------------------------------

int i=1;
for(----;-----;i++)
if i=1的为大写,则返回小写.
else 为小写,返回小写.
if i+1的字母为大写,则返回小写
else 为小写,返回小写
当 i为空格时,若i+1个还是空格 则
当 第i个字符为'\n'时.返回空格(空格也是一个字符).
当第i个字符为'.'号时,退出循环.
cout<<line;
return 0;
}

代码不会写....

2007-11-14 18:00
yuyunliuhen
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1435
专家分:0
注 册:2005-12-12
收藏
得分:0 
一个一个解决就不会难啦

Go confidently in the  directions of your dreams,live the life you have imagined!Just do it!
It is no use learning without thinking!
2007-11-14 18:50
jiruanl062
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-11-6
收藏
得分:0 

要代码....这个我写过..但是有些关键的地方不明白.
请教各位高手的代码....

2007-11-14 20:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
if(str[i]==' '||str[i]=='\n')
{

//空格和换行标记增加,作为移动的位数,只留一个空格.(当然只有一个换行时,当作空格替换)

}
if(i==0||str[i-1]=='.')
{
str[i]+='A'-'a';//变大写
}

倚天照海花无数,流水高山心自知。
2007-11-14 21:01
jiruanl062
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-11-6
收藏
得分:0 

//2007.11.14 finish
#include<iostream>
#include<string>
using namespace std;

int main()
{
string line;
string line2[100];
cout<<"Please input sometheing,end of '.':"<<endl;
getline(cin,line,'.'); //输入一段字符。

int i=1, j=0;
/*当首字母为空格.换行时.有该怎么去做 ??比如开头我就连续输入10多个空格或换行.*/
if ( line[0] >= 97 || line[0] <= 122 ) // 当首字母为小写时,将它改变为大写
line2[j] = line[j] - 32;

j++;

while( i< line.size() ) //当字符没有到终点的时候,进入循环
{

/*当遇到字符为空格或者是换行的时候,判断后一个字符
*是否也是空格或者换行,是的话,就跳一位。
*不是的话,就直接可以进行下一步。
*/
while( line[i] == ' ' || line[i] == '\n' )
{
if( line[i+1] == ' ' || line[i+1] == '\n' )
++i;
else
break;
}

//若字符为大写字母,转化为小写字母
if ( line[i] >= 65 && line[i] <=90)

line[i] = line[i] + 32;

//若字符为换行,将它转化为空格
if ( line[i] == '\n' )
line[i] = ' ';

//附值
line2[j] = line[i];

//推进
++i;
++j;

}

//输出新的字符串
for ( int k=0; k < j; k++ )
cout << line2[k];

cout<<endl;


return 0;
}

2007-11-15 12:50
快速回复:[求助]不明白了...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019804 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved