int main() {
string s;
getline(cin,s);
string word = " ", maxstr = " ", minstr = " ab";
for (int i = 0;i < s.size();i++)
{
if (s[i] == ' ' || s[i] == ',' || s[i] == '.')
{
if (word.size() < minstr.size())
{
minstr = word;
}
if (word.size() > maxstr.size())
{
maxstr = word;
}
word = ' ';
}
else
{
word += s[i];
}
}
cout << maxstr << endl;
cout << minstr << endl;
return 0;
}
正确做法
int main()
{
string s;
int i, count = 0, max = -1, min = 100000, maxp, minp;
getline(cin, s);//默认回车终止
for (i = 0;i < s.length();i++)
{
if (s[i] == ' ' || s[i] == ',' || s[i] == '.')
{
if (count > max)
{
max = count;
maxp = i;
}
if (count < min)
{
min = count;
minp = i;
}
count = 0;
}
else
count++;
}
for (i = maxp - max;i < maxp;i++)
cout << s[i];
cout << endl;
for (i = minp - min;i < minp;i++)
cout << s[i];
cout << endl;
}
为啥这样输出不会有前面那个空格啊