Подстроки строки перенести в массив строк - 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;
}

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

  1. Подключение необходимых библиотек: stdlib.h, printf.h, string.h
  2. Объявление и инициализация исходной строки: aaa bbb ccc ddd
  3. Получение указателя на первую подстроку с помощью функции strtok, разделяющей строку по пробелам и символу новой строки.
  4. Создание массива строк arr[10][10] для хранения подстрок.
  5. Объявление переменной n для подсчета количества найденных подстрок.
  6. В цикле while с помощью функции strtok происходит поиск следующих подстрок и их копирование в массив arr с помощью функции strcpy.
  7. После окончания цикла, в цикле for происходит вывод найденных подстрок на экран с помощью функции printf.
  8. Конец программы возвращает 0, что означает успешное выполнение.

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


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

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

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