1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
//Visual Studio Посчитать количество уникальных символов в каждом слове строки #include <iostream> #include <cstring> //memset using namespace std; int main() { system("CLS"); const char SEPARATOR[] = " .?!,"; //Строка разделителей char S[255] = "Its very good snusmumrik"; //Анализируемая строка cout << S << "\n\n"; //выводим основное слово char *ptr = 0; //указатель, будет указывать на часть основной строки char moda[255]; //массив моды ptr = strtok(S, SEPARATOR); //Узнаём первое слово строки int count = 0; //счётчик уникальных симолов слова while (ptr) { memset(moda, 0, 255); //обнуляем массив моды count = 0; //обнуляем счётчик уникальных символов слова //сейчас слово в ptr, обходим это слово посимвольно for (int i = 0; i < strlen(ptr); i++) { if (moda[ptr[i]] == 0) { //если символ не был записан в массив моды, то moda[ptr[i]]++; //записываем символ в массив моды cout << ptr[i]; //выводим символ count++; //наращиваем счётчик уникальных символов слова } } // конец посимвольного обхода слова cout << " " << count; //выводим количество уникальных символов слова cout << '\n'; ptr = strtok(0, SEPARATOR); //переходим к новому слову } cin.ignore().get(); } |
при выполнении этой части кода теряются символы.
"good" становится "god"
А как на два файла разбивать их,ввод и вывод в одном файле,подсчет в другом?просто не получается добавлять подсчет символа
Тут не два файла получится:
1. Файл программы, в котором есть main. Это главный файл. (prog.cpp)
2. Файл ввода. В нём хранить только класс и объявления. (1.h)
3. Файл реализации ввода. В нём подключается файл ввода и описываются функции для класса (1.cpp)
4. Файл обработки строки. В нём хранить только класс и объявления. (2.h)
5. Файл реализации обработки строки. В нём подключается файл обработки строки и описываются функции для класса. (2.cpp)
В главном файле подключается оба файла, которые хранят только классы.
prog.cpp
Я не знаю, что именно у Вас не получается.
Готов автора покусать за эту строчку:
я все мозги сломал, понимая, что бы это значило. В итоге понял, что она отлично работает и без «раковой опухоли» && ptr[i]. Вот так просто можно оставить: