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

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

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

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

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

Ф-ция со строками

  • Автор темы Again
  • Дата начала
A

Again

Составить функцию Zam (s, p, q, n), которая в строке символов s заменяет все вхождения подстроки p на не более чем n символов подстроки q. Стандартные функции для работы со строками не использовать.
 
A

Again

Предпологается, что в s достаточно места для размещения суммарной строки.
 
L

lazybiz

C++:
#include <stdio.h>

//
// Составить функцию Zam (s, p, q, n), которая в строке символов s заменяет все вхождения подстроки p
// на не более чем n символов подстроки q. Стандартные функции для работы со строками не использовать.
//
// Предпологается, что в s достаточно места для размещения суммарной строки.
//

int slen( char s[] )
{
int	i = 0;
while ( *s++ ) i++;
return i;
}

int scmp( char a[], char b[], int n )
{
for (; *a == *b && --n; a++, b++ );
return n == 0;
}

void sput( char s[], char a[], int n )
{
while ( n-- ) *s++ = *a++;
}

void Zam( char s[], char p[], int n, char q[] )
{
int	i;
for ( i = 0; i < slen( s ) - n; i++ ) {
if ( scmp( &s[i], p, n ) ) {
sput( &s[i], q, n );
}
}
}

int main()
{
int		n;
char	s[1000], p[100], q[100];

printf( "Vvedite stroku s: " );
scanf( "%s", s );

printf( "Vvedite podstroku p: " );
scanf( "%s", p );

printf( "Vvedite podstroku q: " );
scanf( "%s", q );

printf( "Vvedite n: " );
scanf( "%d", &n );

Zam( s, p, n, q );

printf( "Resultat: %s\n", s );

return 0;
}
 
Мы в соцсетях:

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