G
G
g hh2021-12-02 00:37:30
C++ / C#
g hh, 2021-12-02 00:37:30

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 itself61a7eaeab1e0e213716764.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;
  
}

Answer the question

In order to leave comments, you need to log in

1 answer(s)
C
CityCat4, 2021-12-02
@dangor266

strstr()
strcpy()
might need
strchr()
strcmp()

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question