Поиск подстроки в строке - 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))); }
Объяснение кода листинга программы
В данном коде происходит следующее:
- Подключаются необходимые библиотеки для работы со строками
- В функции main() создаются две строки типа char - a и b
- В строку b копируется подстрока из строки a, начиная с первого символа после пробела и заканчивая вторым пробелом (если он есть), в противном случае до конца строки. Копирование производится с использованием функции strncpy()
- Выводится полученная подстрока с помощью функции printf() Список переменных и их значений:
- a -
ab cd ef
- b - `` В данном коде нет использования переменных 3-20
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д