當前位置:編程學習大全網 - 編程軟體 - 編程英語單詞

編程英語單詞

可能字符串中沒有加\0,數組b[80]沒有顯示0初始化,find函數中沒有顯式加\0。我不懂妳的算法,只能這樣猜測。寫壹個標準的庫方法,可以參考下面的:

# include & ltiostream & gt

# include & ltsstream & gt

# include & lt地圖& gt

使用命名空間std

int main()

{

typedef string::size _ type ST;

//存儲所有單詞的長度、單詞本身以及單詞出現的位置。

多地圖& ltST,pair & ltstring,ST & gt& gtm;

弦線;

cout & lt& lt請輸入壹個英語句子:

getline(cin,line);

ST pos = 0;

while((pos=line.find(','))& ltline.size())

第[pos]行=“”;//替換所有逗號。

istringstream ins(行);

字符串令牌;

pos = 0;

while(ins & gt;& gt令牌)

m . insert(pair & lt;ST,pair & ltstring,ST & gt& gt(token.size(),

pair & ltstring,ST & gt(token,pos=line.find(token,pos)+1));

ST t = m . r begin()-& gt;第壹;

//地圖容器默認按鍵排序,最後壹個長度最長。去吧。

for(multimap & lt;ST,pair & ltstring,ST & gt& gt::reverse _ iterator it = m . Rb egin();

它!= m . rend();++it)

如果(它-& gt;first==t)

cout & lt& lt“最長的單詞是”

& lt& lt"起始位置是:"

else break

}

如果有長度相同的單詞,則以逆序顯示,這樣更簡單。起始位置從1開始計算。

  • 上一篇:什麽配置的電腦適合辦公
  • 下一篇:日本有哪些sci收錄期刊
  • copyright 2024編程學習大全網