while(cin>>s[counter]) {
counter++;
x=getchar();
if(x=='\n')
break;
}
cin不会读取空格,将输入的字符串依次存入字符数组中,回车结束输入。
for(int i=0; i<counter; i++) {
if(s[max].size()<s[i].size()) {
if(i==counter-1) {
if(s[max].size()<s[i].size()-1)
max=i;
} else if(s[max].size()!=s[i].size())
max=i;
s2=s[max];
}
}
max初始值为0,在目前最大单词长度小于当前单词长度时,由于字符串以 ‘.’ 结尾,所以最后一个字符串的实际长度比要求长度多1个字节。
else if(s[max].size()!=s[i].size())
max=i;
当目前最大单词长度与当前单词长度相等时,不会改变max的值,相当于多个长度相等的最大长度单词,只输出第一个。