Работа с текстом, перевод из C++ - C#
Формулировка задачи:
Написать программу, которая считывает с клавиатуры несколько строк текста и печатает таблицу, показывающую, сколько раз в тексте встречаются одинаковые слова.
Примерно такой код, необязательно чтобы так повторялось. Да и в задании сказано, что будут несколько строк...
#include <iostream>
#include <string>
#include <sstream>
#include <map>
int main(){
std::string str;
while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() ){
std::istringstream ist(str);
std::map<std::string, int> map;
while ( ist >> str )
map[str]++;
for ( std::map<std::string, int>::const_iterator i = map.begin(); i != map.end(); ++i )
std::cout << i->first << "\t" << i->second << std::endl;
}
return 0;
}Решение задачи: «Работа с текстом, перевод из C++»
textual
Листинг программы
Dictionary<string, int> dict = new Dictionary<string, int>();
string line;
string[] words;
do
{
line = Console.ReadLine();
words = line.Split(new char[]{' '}, StringSplitOptions.RemoveEmptyEntries);
foreach (string word in words)
{
if (dict.ContainsKey(word))
dict[word]++;
else
dict.Add(word, 1);
}
}
while (words.Length > 0); //цикл до ввода пустой строки
foreach (string key in dict.Keys)
{
Console.WriteLine("Слово {0} встречается {1} раз(а)", key, dict[key]);
}