我想要一個字符串並將其分解爲「字」組件並將其存儲在字符串數組中。 「你好,我的名字是比爾。」應該返回一個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