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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ В массиве А определить 5 наибольших значений и, расположив их по убыванию, вставить в массив В http://www.cyberforum.ru/cpp-beginners/thread765315.html
Даны два массива А(10) и B(10) целых чисел. В массиве А определить 5 наибольших значений и, расположив их по убыванию, вставить в массив В после его наименьшего элемента
C++ Где в коде ошибка (сравнение трех чисел) #include <iostream> using namespace std; int function (int a, int b, int c) { int vid; if (a < b && a > c) vid = a; if (a > b && a < c) vid = a; if (b < a && b > c) vid = b; if (b > a && b < c) vid = b; if (c < a && c > b) vid = c; if (c > a && c < b) vid = c; int max; http://www.cyberforum.ru/cpp-beginners/thread765271.html
C++ Конструктор
Для чего здесь конструктор, что он делает? и почему объект one разрушается первым? #include<iostream> using namespace std; class empty { char*obj_name; public: //Конструктор empty(char*name) {cout<<"Создан объект с именем "<< name <<" класс empty"<<endl; obj_name=name;
Ещё раз про поток stringstream! C++
Всем привет! Вобщем понадобился мне этот поток... Поискал я как его очищать... Нашёл несколько способов... Собственно метод str("") и метод clear(). Первый как я понял зачищает строку нулевым значением, а второй сбрасывает флаги у потока. И вот что у меня получилось. #include <iostream> #include <sstream> using namespace std;
C++ Как читать программу на С++? http://www.cyberforum.ru/cpp-beginners/thread765231.html
Приветствую вас, дорогие форумчане! У меня вот такой вопрос: Как легко читать программу? т.е. как перевести из исходного кода в русский язык... Например есть код С++: #include <iostream> #include <cstdlib> using namespace std; int main() { int a,b;
C++ Написать программу вычисления значения функции, заданной в виде ряда, с погрешностью e > 0 Написать программу вычисления значения функции, заданной в виде ряда, с погрешностью e > 0, т.е. чтобы для заданной погрешности e вы- полнялось соотношение - .e -1 ( ) ( )n n f x f x . Определить количество членов ряда, сравнить полученное значение суммы со значением функции, полученным c помощью стандартных методов класса Math языка С#: Acos(x) – Арккосинус (arccos x) Cos(x) – Косинус (cos... подробнее

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

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;
}
Программа работает с данной строкой, разбивая её по словам и занося каждое слово в отдельную строку. Нужно переделать так, чтобы она не заносила каждое слово в отдельную строку, а все действия производила в одной, первоначальной строке, в которой записаны наши слова. И ещё надо осущевтсить ввод слов с клавиатуры. Помогите, пожалуйста, реализовать. Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru