![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Программа Си |
|
C/C++ - Программа Си
|
Пользователь Сообщения: 55 |
Прошу помочь. Нужно написать программу, которая выводила бы повторяющиеся слова 1 раз. В моем коде получается, что если какое то слово будет написано более двух раз, то соответственно программа выведет это слово минимум 2 раза. Никак не могу додумать код...
#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char str[100], O[100][100]; int i, i2, j, k, s; printf(" Введите слова через пробел: "); gets(str); s=strlen(str); i=0; j=0; k=0; for (i=0; i <= s; i++) // Разбиваем строку на слова { if (str[i] == ' ' || str[i] == '\0') { O[j][k]='\0'; j++; k=0; } else { O[j][k]=str[i]; k++; } } printf(" Вывод повторяющихся слов: \n"); for (i=0; i < j; i++) { for (i2=i+1; i2 < j; i2++) { if (strcmp(O[i],O[i2])==0) { puts(O[i]); } } } system("pause"); } |
|
Отправлено: 15:26, 24-12-2015 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Хороший вопрос. Надо подумать, но разбивать предложение на лексемы можно и лучше с помощью функции strtok, а сравнивать две строки с помощью функции strcmp
//Строки, использование strtok #include <iostream.h> using std::cout; using std::cin; using std::endl; #include <cstring.h> int main() { system("chcp 1251"); char string[] = "Это предложение, тест, содержит несколько тестовых строк: тест - тест"; char *chLeksem[100]; // массив указателей, храним лексемы: один элемент - одно слово char *tokenPtr; int chIndex = 0; cout << "Строка разбивается на лексемы:\n" << string <<"\n\nЛексемы: \n\n"; tokenPtr = strtok(string, " .,-:"); // Разбивка предложения по пробелу, точке, запятой, тире, двоеточие while(tokenPtr != NULL){ chLeksem[chIndex] = tokenPtr; // Разбиваем предложение на лексемы и сохраняем в массив chIndex++; tokenPtr = strtok(NULL, " .,-:"); } for(int i = 0; i < chIndex; i++) cout << chLeksem[i] << endl; // Здесь уже будем сравнивать слова\лексемы, надо подумать как. system("pause"); return 0; } |
------- Отправлено: 17:52, 31-12-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать Drongo, Спасибо за ответ. Программу уже написал как смог. Если интересно, то вот код
Скрытый текст
Довольно странный способ у меня и не совсем очевидный, но рабочий. |
Отправлено: 20:21, 01-01-2016 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - Программа, которая вычисляет площадь и периметр круга, прямоугольника, треугольник Си | partisanus | Программирование и базы данных | 2 | 20-12-2012 03:07 | |
C/C++ - Паскаль-си | Drago56 | Программирование и базы данных | 3 | 24-12-2010 19:09 | |
C/C++ - Создание ОС на Си и Си++ | morph-x | Программирование и базы данных | 2 | 26-10-2010 20:35 | |
C/C++ - Random в C (Си) | ganselo | Программирование и базы данных | 12 | 21-11-2008 10:16 | |
Почему большинство проектов Open Source написаны на СИ, а не на СИ++ | Mr666 | Программное обеспечение Linux и FreeBSD | 2 | 20-02-2008 23:17 |
|