Форум программистов, компьютерный форум CyberForum.ru

На печать выдать слова нечётной длины, в которых нет одинаковых - C++

Восстановить пароль Регистрация
 
doomsteel
1 / 1 / 0
Регистрация: 20.09.2013
Сообщений: 117
03.06.2014, 16:57     На печать выдать слова нечётной длины, в которых нет одинаковых #1
Составить программу на языке С++ для обработки строк с использованием файлов и указателей.

Дана строка. На печать выдать слова нечётной длины, в которых нет одинаковых букв.

Добавлено через 20 часов 33 минуты
help
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 16:57     На печать выдать слова нечётной длины, в которых нет одинаковых
Посмотрите здесь:

Вывести слова, в которых нет повторяющихся букв и буквы слова упорядочены по алфавиту C++
Си: Выдать слова текста и их длины, Сформировать новую строку по правилу C++
C++ Вывести на экран слова, в которых все символы повторяющиеся, или сообщение «Нет», если требуемых слов нет
Ввести строку. На печать выдать слова, имеющие в своём составе сочетание букв «но» C++
C++ Ввести строку. На печать выдать слова, имеющие в своём составе сочетание букв «но»
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
03.06.2014, 17:56     На печать выдать слова нечётной длины, в которых нет одинаковых #2
C++
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
41
42
43
44
#include <iostream>
#include <conio.h>
 
int main()
{
    std::string str;
    std::cout << "Type some text: ";
    getline(std::cin, str);
    char* chStr = new char[str.size() + 1];
    strcpy(chStr, str.c_str());
    
    char* p = strtok(chStr, " ");
    
    while(p != NULL)
    {
        std::string temp = p;
        if(temp.size() % 2)
        {
            bool check = true;
            for(int i = 0; i < temp.size(); i++)
            {
                int counter = 0;
                size_t found = temp.find(temp[i]);
                while(found != std::string::npos)
                {
                    found = temp.find(temp[i], found + 1);
                    counter++;
                    if(counter > 1)
                    {
                        check = false;
                        break;
                    }
                }  
            }
            if(check)
                std::cout << temp << std::endl;
        }
        p = strtok(NULL, " ");
    }
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
doomsteel
1 / 1 / 0
Регистрация: 20.09.2013
Сообщений: 117
05.06.2014, 07:43  [ТС]     На печать выдать слова нечётной длины, в которых нет одинаковых #3
он ругаеться на getline
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
05.06.2014, 16:20     На печать выдать слова нечётной длины, в которых нет одинаковых #4
Цитата Сообщение от doomsteel Посмотреть сообщение
он ругаеться на getline
Так что пишет? Попробуйте std::getline и (или) добавьте #include <string>
doomsteel
1 / 1 / 0
Регистрация: 20.09.2013
Сообщений: 117
15.06.2014, 08:19  [ТС]     На печать выдать слова нечётной длины, в которых нет одинаковых #5
что означает каждая строчка?
C++
1
2
3
4
5
getline(std::cin, str);
    char* chStr = new char[str.size() + 1];
    strcpy(chStr, str.c_str());
    
    char* p = strtok(chStr, " ");
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
15.06.2014, 09:48     На печать выдать слова нечётной длины, в которых нет одинаковых #6
C++
1
2
3
4
getline(std::cin, str); //прочитать строку из консоли и положить в str
char* chStr = new char[str.size() + 1];//динамически создать массив char-ов размерности str +1 (для '\0')
strcpy(chStr, str.c_str()); // представить str как массив char-ов и скопировать в chStr
char* p = strtok(chStr, " "); //гуглим как работает strtok
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2014, 13:05     На печать выдать слова нечётной длины, в которых нет одинаковых
Еще ссылки по теме:

C++ Дана строка. На печать выдать слова нечётной длины, в которых нет одинаковых букв
C++ На печать вывести слова, стоящие на нечетных местах и имеющие длину больше длины предпоследнего слова
Выдать в возрастающем порядке все цифры от 100 до 999 в десятичном записи в которых нет одинаковых числе C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
15.06.2014, 13:05     На печать выдать слова нечётной длины, в которых нет одинаковых #7
C++
1
2
3
4
5
6
7
8
getline(std::cin, str); // Функция getline() сохраняет введённую строку в str
char* chStr = new char[str.size() + 1]; // Выделяется память для массива char по размеру str (плюс '\0')
strcpy(chStr, str.c_str()); // Копируем строку str в chStr, т. к. strtok() (ниже) не работает со string
 
// Первое использование функции strtok(). В качестве указателя используем chStr.
// Далее будем использовать NULL. Функция нужна для исключения пробелов запятых,
// точек, скобок и т. д. (в данном случае только пробелы)
char* p = strtok(chStr, " ");
Yandex
Объявления
15.06.2014, 13:05     На печать выдать слова нечётной длины, в которых нет одинаковых
Ответ Создать тему
Опции темы

Текущее время: 07:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru