Поиск подстроки в строке - C (СИ) (77458)

Узнай цену своей работы

Формулировка задачи:

Задача заключается в том, что есть один массив, состоящий из "ab cd ef" и есть другой пустой массив, нужно "cd" скопировать в пустой массив и вывести на экран. Ниже есть какие-то наработки, но там у меня копируется все что до первого пробела (т.е. "ab"):
#include <stdio.h> 
#include <string.h> 
 
int main() { 
    int p; 
    char A[50]; 
    char B[50]; 
    strcpy(A, "ab cd ef"); 
    char *i= strchr(A, ' '); 
    strncpy(array2,A,i-A); 
    printf ("%s\n",B); 
    scanf("%d",p); 
    return 0; 
}

Решение задачи: «Поиск подстроки в строке»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int main(void)
{
   char a[BUFSIZ] = "ab cd ef", b[BUFSIZ] = {'\0'};
 
   printf("%s\n", strncpy(b, strchr(a, ' ') + 1, strchr(strchr(a, ' ') + 1, ' ') - (strchr(a, ' ') + 1)));
}

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. Подключаются необходимые библиотеки для работы со строками
  2. В функции main() создаются две строки типа char - a и b
  3. В строку b копируется подстрока из строки a, начиная с первого символа после пробела и заканчивая вторым пробелом (если он есть), в противном случае до конца строки. Копирование производится с использованием функции strncpy()
  4. Выводится полученная подстрока с помощью функции printf() Список переменных и их значений:
  5. a - ab cd ef
  6. b - `` В данном коде нет использования переменных 3-20

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы