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

/*Введём текст с заканчивающийся точкой , вывести все слова у которых первая и последняя буквы одинаковы.*/h - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ сортировка слиянием http://www.cyberforum.ru/cpp-beginners/thread109799.html
Ребят,помогите пожалуйста,нужно отсортировать массив,который вводим с клавиатуры методом слияния,вот я написал ,но сортировка не работает,в чем проблема?допишите и исправьте если можно #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; void merge(int arr,int first,int mid,int last); const int MAX_SIZE = 10;// количество элементов временного массива;
C++ Динамические массивы... Помогите пожалуйста.... Дано матрицу размерностью N * М с произвольных многочисленных элементов. Найти элементы, которые по модулю меньше некоторого значения, введенного с клавиатуры. http://www.cyberforum.ru/cpp-beginners/thread109794.html
[c++] Перегрузка операторов C++
Для заданных A = (A – a1, A, A + a2) и B = (B – b1, B, B + b2) Найти сумму A + B = (A + B – a1 – b1, A + B, A + B + a2 + b2); #include <conio.h> #include <iostream.h> struct FazzyNumber { double x; double x1,x2;
КАК будет в коде? C++
Розложить на множители натуральное число. Число задать при опросе. Например, 1050=2*3*5*5*7 вот это всё надо сделать в программном языке, плииз очень быстро нужно зарание спа-си-бо!!!
C++ Пожалуйста напишите программу! http://www.cyberforum.ru/cpp-beginners/thread109758.html
Найти максимальные элементы в каждой строке квадратной матрицы и записать их на главную диагональ... а диагональные элементы записать на места максимальных
C++ В строке записано вещественное число в форме с фиксированной точкой. Преобразовать строку, записав в нее округленное до целых значение данного числа. помогите пожалуйста!!!! В строке записано вещественное число в форме с фиксированной точкой. Преобразовать строку, записав в нее округленное до целых значение данного числа. подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
28.03.2010, 18:37     /*Введём текст с заканчивающийся точкой , вывести все слова у которых первая и последняя буквы одинаковы.*/h
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
#include <iostream>
#include <string>
 /*Введём текст с заканчивающийся точкой , вывести все слова у которых первая и последняя буквы одинаковы.*/
 
int main()
{
    std::string str;
    std::string punctuation("!,?:;\'\"()-%#$^*[]{}\\|/");
    size_t index=0;
    //Чтение строки, пока не встретится символ-разделитель '.'
    std::getline(std::cin, str, '.');
    //Удаление знаков препинания из исходной строки
    while((index=str.find_first_of(punctuation, index))!=std::string::npos)
        str[index++]=' ';
    while((index=str.find(' '))!=std::string::npos)//Поиск индекса первого встретившегося пробела
    {
        std::string temp(str.begin(), str.begin()+index);//Выделение слова
        str.erase(0, index+1);//Удаление слова с пробелом из исходной строки
        if(temp.empty())//Если выделилось пустое слово (встретилось два пробела подряд)
            continue;//Переход на следующую итерацию цикла
        if(*temp.begin()==*temp.rbegin())//Проверка, равен ли первый символ слова последнему
            std::cout << temp << std::endl;
    }
    system("pause");
    return 0;
}
Добавлено через 22 минуты
Вот переделанный твой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
 
int main()
{
    char a[200], *k=a, *l=a;
    //Символ '.' - разделитель, и от НЕ считывается из входного потока
    std::cin.get(a,200,'.');
    while(*k)//Цикл нужно выполнять, пока не встретится нуль-терминатор
    {
        while((*l++!=' ')&&(*l))//Пока не встретим пробел или нуль-терминатор, выполняется пустой цикл
            ;
        if(*k==*(l-2))//Если первый символ в слове равен последнему
        {
            *(l-1)='\0';
            std::cout << k << std::endl;
        }
        k=l;
    }   
    system("pause");
    return 0;
}
 
Текущее время: 16:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru