我想要一个字符串并将其分解为“字”组件并将其存储在字符串数组中。 “你好,我的名字是比尔。”应该返回一个char **元素,“你好”,“我的”,“名称”,“是”和“比尔”。返回字符串输入字符串
我的代码编译但我一直遇到一个运行时错误(我没有得到警告了我的gdb调试器不工作)>
我在窗户上的MinGW运行8
#include <stdio.h>
#include <stdlib.h>
char** words(char* string)
{
int i = 0;
int j = 0;
int k =0;
int count = 0;
char** stringArray = (char**) malloc(sizeof(char)*30*30);
while(string[i] != '\0')
{
if(string[i] != ' ')
{
j =0;
while(string[i+j+1] != ' ')
{
j++;
}
i = i+j;
for(k=0; k<=j; k++)
{
stringArray[count][k] = string[i+k];
}
count++;
}
i++;
}
return stringArray;
}
int main()
{
char message[20] = "abcd efgh ijkl mno";
char** wordArray = words(message);
printf("%c\n\n", wordArray[0][0]);
int i =0;
while(wordArray[i])
{
printf("%s\n", wordArray[i]);
i++;
}
printf("\nThe problem is not with the words function");
return 0;
}
什么是运行时错误?有踪迹吗?你的意思是你的gdb不起作用? –
如果你不是这样做的,只是为了练习,你可能想看看[strtok](http://en.cppreference.com/w/c/string/byte/strtok)函数。它用于分割字符串。 – jpw
这是给分段错误。 – haccks