У меня есть массив, который состоит из строки слов (я использовал fgets). Теперь я хочу создать новый массив как часть той же структуры, которая содержит одни и те же строки, но разбита на слова, содержащие только буквенно-цифровые символы (так что строка [1] .word_in [3] даст мне третье слово в строке 1). У меня была небольшая попытка, но она не сработала.Разбиение линейного массива на слова
typedef struct {
char linewords[101];
char separateword[101];
} line;
line linenum[101];
while fgets(linenum[i].linewords, 101, stdin) != NULL) {
i++
linenum[i].separateword = linenum[i].linewords.Split(' ');
if (isalnum(int linenum[i].separateword) != 0) {
/* need to remove that character */
}
}
Прошу прощения за то, что я действительно не представляю, что я делаю. Моя первая проблема, очевидно, заключается в разделении структуры, поскольку это дает мне ошибку. Спасибо
Редактировать: Я добавил, что я сейчас делаю; однако я получаю ошибки присваивания при назначении var.
typedef struct {
char linewords[101];
char separateword[101];
} line;
line linenum[101];
char var[101]
char *strtok(char *str, const char delim);
while fgets(linenum[i].linewords, 101, stdin) != NULL) {
char* strcopy();
char* strtok();
strcpy(linenum[i].separateword,linenum[i].linewords);
strtok(linenum[i].separateword, ' '); /*this line causes seg fault*/
i++
}
}
Что вы имели в виду под этим не работало? –
Я получаю следующую ошибку: «запрос для члена« Разделить »в чем-то не структуре или объединении». – KittiCat
'linenum [i] .linewords.Split ('')' Вы не можете составить такой синтаксис. Если вы намереваетесь использовать C, то узнайте о C, вы не можете ожидать, что все, что работает на одном языке, волшебным образом работает на другом языке. –