写一个程序,最长读入100个字符的句子.对这个句子进行调整,输出间距相等(单词间只有一个空格,有多余就缩进).句子以大些字母开头,句子中所有字母都小写(有大些就转换成小写)然后以'.'(句点)结束.将换行符视为一个空格,将任意多个换行符号都视为一个空格..
用string 类写..
我自学的C++ ,,看到这里不知道怎么做了
哪位大侠帮帮呀.写来让学习下
比如 这样
输入:
the key
IS 123456789.
输出:
The key is 123456789.
#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 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;
}