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

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

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