나는 내가 가지고있는 경우 제공 입력에서 예를 들어 을 하위 문자열을 추출하기 위해 노력하고있어 : 내가 얻을하려는 char *
에 "안녕하세요 내가 여기"분할 문자열 (시험에 분할 고장)
char tab[0] = "Hello";
char tab[1] = "I";
/// etc
하지만 Segfault는 어떤 도움이됩니까? 저를 도와
int main(int ac, char **av)
{
char **tab;
int i;
i = 0;
tab = str_to_wordtab("Hello I am here");
while (tab[i])
{
my_putstr(tab[i++]);
my_putstr("\n");
}
}
감사 : 여기
#include <stdlib.h>
char **str_to_wordtab(char *str)
{
int i;
int j;
int k;
char **tab;
i = 0;
k = 0;
tab = malloc(my_strlen(str) * sizeof(*tab));
while (str[k] != '\0')
{
j = 0;
tab[i] = malloc(my_strlen(str) * sizeof(*tab[i]));
while (str[k] != ' ')
tab[i][j++] = str[k++];
tab[i][j] = '\0';
if (str[k] == ' ')
k++;
i++;
}
return (tab);
}
그리고 그것을 테스트하는 주입니다 :
은 여기 내char *
를 나누는 내 기능입니다.
'my_strlen'과'my_putstr'는 당신의 커스텀 함수입니까? 그 기능을 보여주세요. –
그것은 루프에서'str [k] == '\ 0''을 전달합니다. and while (tab [i])'반드시 NULL로 초기화 된 것은 아닙니다. – BLUEPIXY