Answer the question
In order to leave comments, you need to log in
What functions from the string.h library should be used to solve the problem?
There is a problem, you need to solve it in two ways, the first I have already solved it. It remains to solve the second way, using functions from the string.h library.
The task itself
/*
* Задача №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;
}
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question