Помогите решить задачу на Си++ (Масивы и ряды)

Тема в разделе "C/C++/C#", создана пользователем dimon131, 15 дек 2010.

  1. dimon131

    dimon131 Member

    Регистрация:
    8 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    Дан массив слов, и в каждом слове от 2 до 10 малых украинских букв. В каждом
    слове удалить все повторные вхождения последней буквы, оставив лишь первое ее
    вхождения.


    Алгоритм:


    Код (C++):
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    #define N 2  //Использование макроса
    int main(void)
    {
    int i,j; // Переменные, которые будут использоваться
    char *P; //Объявление указателя
    char mas[N][11]     //объявление масива
    printf("Введите ряд\n");

    for(i=0; i<N; i++)
    gets(mas[i]); //Ввод ряда

    for(i=0; i<N; i++)
    {
    P=strchr(mas[i],"a");  //Поиск символа
    if (P!=NULL)
    P+=1
    if (strchr(mas[i],"")==0)     //вывод масива, если символа нет
    puts(mas[i]);
    }
    getch();
    return 0;
    }
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    :))))
    А они в какой кодовой станице хотя бы находятся???? ;-))))
     
  3. dimon131

    dimon131 Member

    Регистрация:
    8 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    вместо украинских можно использовать английские и любые другие
     
  4. Rififi

    Rififi Гость

    наверное, как-то так...

    Код (C++):
    #include <locale>
    #include <string>
    #include <iostream>
    #include <sstream>
    #include <algorithm>

    /*
    Дан массив слов, и в каждом слове от 2 до 10 малых украинских букв. В каждом
    слове удалить все повторные вхождения последней буквы, оставив лишь первое ее
    вхождения.
    */


    int main()
    {
    setlocale(LC_ALL, "");

    const std::string source = "foo bar baztabaz";
    std::stringstream ss(source);

    std::string s;
    while (ss >> s)
    {
    if (s.size() <= 2)
    continue;

    const char ch = *--s.end();
    const size_t pos = s.find(ch);

    const std::string::iterator end = --s.end();
    s.erase(std::remove(s.begin() + pos, end, ch), end);
    std::cout << s << std::endl;
    }  

    return 0;
    }
    Вывод:

    fo
    bar
    batabaz
     
Загрузка...
Похожие Темы - Помогите решить задачу
  1. GREED
    Ответов:
    1
    Просмотров:
    547
  2. vovanabali
    Ответов:
    0
    Просмотров:
    540
  3. merrs
    Ответов:
    1
    Просмотров:
    1.310
  4. Kugotovr23
    Ответов:
    1
    Просмотров:
    1.286
  5. mregor
    Ответов:
    0
    Просмотров:
    911

Поделиться этой страницей