@dangor266

Какие функции из библиотеки string.h использовать для решения задачи?

Есть задачка, нужно решить её двумя способами, первым я её уже решил. Осталось решить вторым способом, используя функции из библиотеки string.h.
Сама задача 61a7eaeab1e0e213716764.png
/*
* Задача №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;
	
}
  • Вопрос задан
  • 60 просмотров
Решения вопроса 1
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
strstr()
strcpy()
может быть понадобится
strchr()
strcmp()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы