Мне нужен совет относительно этого упражнения по кодированию:
Напишите функцию, которая разбивает строку на слова. Все разделители будут состоять не из букв c. Функция возвращает массив, в котором каждая ячейка содержит адрес строки (представляющей слово). Последняя ячейка должна быть NULL для завершения массива.
Мне нужна помощь в двух вещах: как моя функция правильно возвращает массив моей главной функции и выполняет ли массив mallo c используется правильно?
Я думаю, что пропустил части указателя, потому что во время компиляции появляются ошибки. Если у вас есть идеи, пожалуйста, дайте мне знать, спасибо!
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char **my_str_to_word_array(const char *str)
{
char* tab_address = NULL;
int j = 0; /*Nombre de mots*/
int i = 0;
char ptr = 0;
for( i = 0; str[i] != " "; i++)/*Compter le nombre de mots dans la string*/
if(*str[i] = " ")
j++;
tab_address = malloc(sizeof(char) * j); /*tab avec tous les mots compter par j*/
if (tab_address == NULL)
exit(0);
for ( i = 0; str[i] != " "; i++) /*Stocker les adresse dans un tableau */
if(str[i] = " ")
{
i++;
tab_address[j] = ptr;
}
else if (*str[i] = "\0")
break;
return ptr;
free(tab_address);
}
int main(void)
{
char str[50] = "Hello world";
my_str_to_word_array(str);
return 0;
}