Поиск подстроки в строке - 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