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

Переделать программу для работы со строками - C++

Восстановить пароль Регистрация
 
VladosLancer
1 / 1 / 0
Регистрация: 03.10.2011
Сообщений: 96
18.01.2013, 12:01     Переделать программу для работы со строками #1
Здравствуйте. Вот условие:
Дана строка текста, в которой слова разделены запятыми и двоеточиями. Необходимо:
а) оределить количество слов в строке и вывести на экран каждое нечетное слово;
б) определить, сколько слов в строке имеют максимальную длину;
в) определить, есть ли в данной строке повторяющиеся слова, и вывести их на экран.

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
45
46
47
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(void)
{
    static char delim[] = ",:";
    static char psz[256] = "one,two:one:four,three:six:nine,three,nine:ten";
 
    int nwords = 0;
    for (int i = 0; i < strlen(psz); i++)
        if (psz[i] == delim[0] || psz[i] == delim[1])
            nwords++;
 
    printf("Kolichestvo slov v stroke = %d\n\n",nwords);
 
    int index = 0;
    static char** words = new char*[nwords];
    for (char* token = strtok(psz,delim); 
        token != NULL; token = strtok(NULL,delim))
    {
        if (index % 2) printf("%d.Nechtnoe slovo: %s\n",index,token);
        words[index] = new char[256];
        strcpy(words[index++],token);
    }
 
    printf("\n");
 
    int max = 0;
    for (int q = 0; q < nwords; q++)
        if (strlen(words[q]) > strlen(words[max]))
            max = q;
 
    int count = 0;
    for (int m = 0; m < nwords; m++)
        if (strlen(words[m]) == strlen(words[max]))
            count++;
 
    printf("Kolichestvo max slov: %d\n\n",count);
 
    for (int z1 = 0; z1 < nwords; z1++)
        for (int z2 = z1+1; z2 < nwords; z2++)
            if (!strcmp(words[z1],words[z2]))
              printf("%d.Povtor slova: %s\n",z1,words[z1]);
 
    return 0;
}
Программа работает с данной строкой, разбивая её по словам и занося каждое слово в отдельную строку. Нужно переделать так, чтобы она не заносила каждое слово в отдельную строку, а все действия производила в одной, первоначальной строке, в которой записаны наши слова. И ещё надо осущевтсить ввод слов с клавиатуры. Помогите, пожалуйста, реализовать. Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2013, 12:01     Переделать программу для работы со строками
Посмотрите здесь:

C++ Разработайте программу работы со строками
ВопросЫ по функциям для работы со строками с++ C++
C++ Функция для работы со строками
Разработать класс String для работы со строками C++
C++ Класс для работы со строками CString
C++ Создать класс для работы сo строками
C++ разработать программу для работы со строками
Функции библиотеки для работы со строками и символами C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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