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

Добить-Отполировать Задачу на Строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определить, на каком из островов среднегодовая температура максимальна http://www.cyberforum.ru/cpp-beginners/thread428554.html
Задача: Известна среднемесячная температура воздуха на следующих островах Карибского моря: Куба, Тринидад, Ямайка, Гаити. Определить, на каком из островов среднегодовая температура максимальна. Прошу помощи знающих людей.:cofee2:
C++ Как получить имя нажатой клавиши Может кто занет, есть ли какая-нибудь функция которая возвращает по коду нажатой клавиши ее название? Например, была нажат ESC - мы получили код 27 на экран выводим ESC. Если функция такой нет как это можно реализовать? Не писать же названия в ручную для всех возможных кодов.. http://www.cyberforum.ru/cpp-beginners/thread428552.html
Невозможность ввода значения второй переменной C++
Недано начал изучать С++. Застопорился на такой проблеме - у меня есть две переменные и пользователь должен ввести их значения с клавиатуры. У меня получился такой код: #include <stdio.h> main() { int c=getchar(); int e=getchar(); }
Для исходных матриц любой размерности найти их сумму и разность C++
Для исходных матриц любой размерности найти их сумму и разность. Для реализации этих функций использовать форму с несколькими вкладками (объект TabControl). На первой вкладке при выполнении пользователь определяет размерность исходных матриц и вводит элементы матриц. На второй вкладке при выполнении выводятся исходные матрицы и результат суммы. На третьей вкладке при выполнении выводятся...
C++ возможно ли всех ОВП рассадить за двумя столами? http://www.cyberforum.ru/cpp-beginners/thread428520.html
На банкет были приглашены N Очень Важных Персон (ОВП). Были поставлены 2 стола. Столы достаточно большие, чтобы все посетители банкета могли сесть за любой из них. Проблема заключается в том, что некоторые ОВП не ладят друг с другом и не могут сидеть за одним столом. Вас попросили определить, возможно ли всех ОВП рассадить за двумя столами. Формат входных данных В первой строке входного файла...
C++ Обработка двумерных массивов. Указатели. Лабораторная работа №5 Обработка двумерных массивов. Указатели. Цель работы: изучение способов описания, ввода-вывода и обработки двумерных массивов, использование указателей при работе с массивами. Задание Дана целочисленная матрица размера mхn. Найти матрицу, получающуюся перестановкой столбцов (первого с последним, второго с предпоследним и т.д.). Откройте ворд, там можете поиграться с... подробнее

Показать сообщение отдельно
Red_Sonya
0 / 0 / 0
Регистрация: 15.01.2012
Сообщений: 10
15.01.2012, 13:29     Добить-Отполировать Задачу на Строки
В строке, состоящей из слов и знаков препинания(пробел . : , ! ? - ; ), найти слово
максимальной длины, не содержащее заданную букву.


код написал пока для строки, в которой есть только пробелы. Наверное можно проще, но вроде все работает. Необходимо добавить чтобы все окей было и со знаками препинания, подскажите идею там , или пример, пожалуйста)

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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include<iostream>  
#include<cstdio>
#include <string>
using namespace std;
 
int main(){
    char *s= new char[256];
    char *outs = new char[256];
    outs[0]=0;
    char c;
    cout<<"Vvedite svoy text: \n";
        gets(s);
        cout<<"Vvedite zadannuyu bukvu: \n";
        cin>>c;
 
//сперва будем удалять слова, содержащие заданную букву:
 
        int start=0;
        bool b=true;
        for (size_t i=0; i<strlen(s);i++)
        {
            if (s[i]==c)
                b=false;
            if(s[i]==' ')
            {
                if(b)
                    strncat(outs, s+start, i-start+1);
                b=true;
                start=i+1;
            }
        }
        if(b)
            strcat(outs, s+start);
 
        
// тепрь outs - массив со словами без заданной буквы
 
//поиск самого длинного слова в массиве outs: 
 
int curlen=0; // текущая длина слова
int maxlen=0; // максимальная длина слова
int index= 0; // позиция конца самого длинного слова
 
for (int i=0; i < strlen(outs); i++){
    if (outs[i]==' ' || outs[i]=='\0'){
        if (curlen>maxlen){
            maxlen = curlen;
            index=i;
        }
        if (outs[i] == '\0') break;
        curlen = 0;
    }
    else curlen++;
}
cout<<"\n";
//вывод слова:
 
for(int i = index-maxlen; i<=index; i++){
    cout<<outs[i];
}
cout<<"\n";
return(0);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru