![]() |
#2
幽园香客2010-08-16 15:06
以下是引用lerncav在2010-8-16 14:53:24的发言: #include<iostream> #include<string> #include<cctype> using std::cin; using std::cout; using std::endl; using std::string; using string::size_type; int main() { string user; cin>>user; user[0]=toupper(user[0]);//把句子的第一个字母变成大写 for (size_type sign=1;sign!=user.size();++sign) { if(ispunct(sign))//如果遇到标点符号 { switch(sign) { case '.'&&'!'&&'?'://如果标点符号是"."或"!"或"?",将标点符号后一位的字母变成大写 //仔细看看你的条件吧?能否改成: case '.': case '!': case '?': size_type signA; signA=user[sign+1]; user[signA]=toupper(user[signA]); break; default: break; } } } cout<<user<<endl; return 0; } 比如我输入“the.the.” 运行后结果是“The.the.” 句号后面的字母没变大写啊! 不知道哪错了,请大家指教.! ![]() …… case '.'&&'!'&&'?'://如果标点符号是"."或"!"或"?",将标点符号后一位的字母变成大写 //仔细看看你的条件吧?能否改成: case '.': case '!': case '?': [ 本帖最后由 幽园香客 于 2010-8-16 15:08 编辑 ] |

#include<iostream>
#include<string>
#include<cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using string::size_type;
int main()
{
string user;
cout<<"Input a sentence, Spaces into ^"<<endl<<endl;
cin>>user;
user[0]=toupper(user[0]);
for (size_type sign=1;sign!=user.size();++sign)
{
if((user[sign] == '.') || (user[sign] == '?') || (user[sign] == '!')|| (user[sign] == ';'))
{
user[sign + 1] = toupper(user[sign + 1]);
}
if(user[sign]=='^')
{
user[sign]=' ';
}
}
cout<<endl<<user<<endl<<endl;
return 0;
}
#include<string>
#include<cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;
using string::size_type;
int main()
{
string user;
cout<<"Input a sentence, Spaces into ^"<<endl<<endl;
cin>>user;
user[0]=toupper(user[0]);
for (size_type sign=1;sign!=user.size();++sign)
{
if((user[sign] == '.') || (user[sign] == '?') || (user[sign] == '!')|| (user[sign] == ';'))
{
user[sign + 1] = toupper(user[sign + 1]);
}
if(user[sign]=='^')
{
user[sign]=' ';
}
}
cout<<endl<<user<<endl<<endl;
return 0;
}
[ 本帖最后由 lerncav 于 2010-8-16 20:24 编辑 ]