Подстроки строки перенести в массив строк - C (СИ)
Формулировка задачи:
Есть строка. Подстроки в ней разделены пробелами. Нужно из этой строки подстроки перенести в массив строк.
Вроде "ааа ббб сссссс ддддддд" в массив ("aaa", "ббб", "сссссс", "ддддддд"). Помогите пожалуйста. stdio.
Решение задачи: «Подстроки строки перенести в массив строк»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char str[] = "aaa bbb ccc ddd"; char *p = strtok( str, " \n" ); char arr[ 10 ][ 10 ]; int n = 0; while ( p ) { strcpy( arr[ n++ ], p ); p = strtok( NULL, " \n" ); } for( int i = 0; i < n; ++i ) printf( "%s\n", arr[ i ] ); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdlib.h, printf.h, string.h
- Объявление и инициализация исходной строки:
aaa bbb ccc ddd
- Получение указателя на первую подстроку с помощью функции strtok, разделяющей строку по пробелам и символу новой строки.
- Создание массива строк arr[10][10] для хранения подстрок.
- Объявление переменной n для подсчета количества найденных подстрок.
- В цикле while с помощью функции strtok происходит поиск следующих подстрок и их копирование в массив arr с помощью функции strcpy.
- После окончания цикла, в цикле for происходит вывод найденных подстрок на экран с помощью функции printf.
- Конец программы возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д