• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы dimon131
  • Дата начала
D

dimon131

Дан массив слов, и в каждом слове от 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;
}
 
D

dimon131

вместо украинских можно использовать английские и любые другие
 
R

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
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!