日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编写程序计算 sentence 中有多少个单词,并指出其中最长和最短的单词。如果有多个最长或最短的单词,则将它们全部输出。

發(fā)布時間:2023/12/15 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写程序计算 sentence 中有多少个单词,并指出其中最长和最短的单词。如果有多个最长或最短的单词,则将它们全部输出。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

/*已知有如下 string 對象:?
9.39:
?string line1 = "We were her pride of 10 she?
named us:";?
?string line2 = "Benjamin, Phoenix, the?
Prodigal"?
?string line3 = "and perspicacious pacific?
Suzanne";?
?string sentence = line1 + ' ' + line2 + ' ' +?
line3;?
編寫程序計算 sentence 中有多少個單詞,并指出其中
最長和最短的單詞。如果有多個最長或最短的單詞,則
將它們?nèi)枯敵觥?/

int main(void)
{
?? ?string line1 = "We were her pride of 10 she named us : ";
?? ??? ?
?? ?string line2 = "Benjamin, Phoenix, the ?? ?Prodigal";
?? ?
?? ??? ?string line3 = "and perspicacious pacific ?? ?Suzanne";
?? ?
?? ??? ?string sentence = line1 + ' ' + line2 + ' ' + line3;
?? ??? ?cout<<sentence.c_str()<<endl;
?? ??? ?int num = 0, count = 0; string strs; vector<char> str; vector<string>strss;
?? ??? ?while (num< sentence.size())
?? ??? ?{
?? ??? ??? ?if (isalnum(sentence.c_str()[num]))
?? ??? ??? ?str.push_back(sentence.c_str()[num]);

?? ??? ??? ?if (isalnum((sentence.c_str()[num++])) && !isalnum((sentence.c_str()[num])))//非字母做運算
?? ??? ??? ?{
?? ??? ??? ??? ?
?? ??? ??? ??? ?count++;
?? ??? ??? ??? ?
?? ??? ??? ?}
?? ??? ?}
?? ??? ?strs.assign(str.begin(), str.end());
?? ??? ?string::size_type pos = 0, pos1 = 0; vector<char>str1; string strs1; vector<string>strss1;
?? ??? ?while ((pos = sentence.find_first_not_of(strs, pos)) != string::npos)
?? ??? ?{
?? ??? ??? ?for (pos1; pos1 < pos; pos1++)
?? ??? ??? ??? ?if (isalnum(sentence[pos1]))
?? ??? ??? ??? ??? ?str1.push_back(sentence[pos1]);//計算字串做單詞
?? ??? ??? ?strs1.assign(str1.begin(),str1.end());//復(fù)制字符串到string對象
?? ??? ??? ?strss1.push_back(strs1);//入棧string對象到string容器
?? ??? ??? ?str1.erase(str1.begin(), str1.end());//清除前面多余字符串
?? ??? ??? ?pos1 = pos;//定位到下個單詞
?? ??? ??? ?++pos;//定位到下個坐標?? ?
?? ??? ?}
?? ??? ?vector<int> value;
?? ??? ?for (int i = 0; i < strss1.size(); i++)
?? ??? ?{
?? ??? ??? ?value.push_back(strss1[i].size());
?? ??? ?}
?? ??? ?int max = value[0], min = value[0];
?? ??? ?for (int i = 1; i < value.size(); i++)
?? ??? ?{
?? ??? ??? ?if (max < value[i])
?? ??? ??? ??? ?max = value[i];
?? ??? ??? ?if (min > value[i]&&value[i]!=0)
?? ??? ??? ??? ?min = value[i];
?? ??? ?}
?? ??? ?
?? ??? ?//for (size_t i = 0; i != value.size(); i++)
?? ??? ?//{
?? ??? ?//?? ?cout << strss1[i];
?? ??? ??? ?//cout << value[i] << endl;
?? ??? ?//}
?? ?
?? ??? ?cout << "最短單詞有:" << endl;
?? ??? ?for (int i = 0; i < value.size(); i++)
?? ??? ?{
?? ??? ??? ?
?? ??? ??? ?if (strss1[i].size() == min)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << strss1[i]<<'\t';
?? ??? ??? ?}
?? ??? ?}
?? ??? ?cout << endl<<"最長單詞有:" << endl;
?? ??? ?for (int i = 0; i < value.size(); i++)
?? ??? ?{

?? ??? ??? ?if (strss1[i].size() == max)
?? ??? ??? ?{
?? ??? ??? ??? ?cout << strss1[i] << '\t';
?? ??? ??? ?}
?? ??? ?}
?? ??? ?cout << endl<<"sentence擁有" << count << "單詞";
?? ?return 0;
}
?

總結(jié)

以上是生活随笔為你收集整理的编写程序计算 sentence 中有多少个单词,并指出其中最长和最短的单词。如果有多个最长或最短的单词,则将它们全部输出。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。