Есть задачка, нужно решить её двумя способами, первым я её уже решил. Осталось решить вторым способом, используя функции из библиотеки string.h.
Сама задача
/*
* Задача №258:
* Даны натуральное число n, символы s1,...,sn.
* Удалить из данной последовательности все группы букв вида abcd.
*/
#include <stdio.h>
#include <locale.h>
#include <string.h>
int main()
{
int numberOfCharacters;
char characterSubsequence[256];
char modifiedCharacterSubsequence1[256];
char modifiedCharacterSubsequence2[256] = "";
char* go;
int i = 0; // счетчик исходной последовательности characterSubsequence[];
int j = 0; // счетчик итоговой последовательности modifiedCharacterSubsequence1[];
int k = 0; // счетчик итоговой последовательности modifiedCharacterSubsequence2[];
setlocale(LC_ALL, "Rus");
printf("Введите количество символов в последовательности:\n");
scanf_s("%d", &numberOfCharacters); //число n
printf("\n");
printf("Введите последовательность, длиной %d символов:\n", numberOfCharacters);
numberOfCharacters++;
scanf_s("%s", characterSubsequence, numberOfCharacters); //символы s1,...,sn
printf("\n");
/*
* 1 способ
* обработка символьного массива
* с использованием кодов символов
* (или сравнение с символьной константой)
*/
do {
if ((characterSubsequence[i] == 'a') and (characterSubsequence[i + 1] == 'b') and (characterSubsequence[i + 2] == 'c') and (characterSubsequence[i + 3] == 'd'))
{
i = i + 4;
}
else
{
modifiedCharacterSubsequence1[j] = characterSubsequence[i];
i++;
j++;
}
} while (i < numberOfCharacters);
i = 0;
j = 0;
/*
* 2 способ
* обработка строк с использованием
* функций работы со строками
* (библиотека string.h)
*/
printf("Полученные значения:\n\n");
numberOfCharacters--;
printf("Количество символов в последовательности = %i\n\n", numberOfCharacters);
printf("Исходная последовательность символов: %s\n\n", characterSubsequence);
printf("Итоговая последовательность символов, полученная первым способом: %s\n\n", modifiedCharacterSubsequence1);
printf("Итоговая последовательность символов, полученная вторым способом: %s\n\n", modifiedCharacterSubsequence2);
return 0;
}