Я работаю в небольшом проекте, у меня есть некоторые имена, хранящиеся в структуре (пример: Name1, Name2), и мне нужно разбить каждое из них и сохранить в массиве, чтобы я мог затем вызывать каждое имя отдельно (printf (% s , vet [1]) должен печатать только Name2).
Это мой код:
int main(){
char temp[100];
LIGA *vetLiga;
int reference;
int quantiy;
separarEquipas(vetLiga, temp, reference, quantity);
}
int separarEquipas(LIGA *p, char vet[100], int vPesquisa, int n){
int i, nr, a;
char *ptr;
char *str;
for(i=0;i<n;i++){
if (p->id == vPesquisa){
nr = p->nrEquipas;
strcpy(str, p[i].eqLiga);
ptr = strtok(str, " ,");
while(ptr != NULL)
{
vet[a++] = ptr; //here I'm trying to store each word in a position of the array
ptr = strtok(NULL, " ,");
}
}
p++;
}
return nr;
}
Проблема заключается в том, что я пытаюсь сохранить каждый токен в массиве, но при этом происходит сбой терминала. Я пробовал разными способами, например, используя strcpy и memcpy, как предлагают другие сообщения, но ничего :(.
Некоторые ошибки, которые у меня возникли при поиске решения:
[Предупреждение] присвоение делает из указателя целое число без приведения; [Предупреждение] передача аргумента 1 'strcpy' делает указатель из целого числа без приведения.
Надеюсь, ты сможешь мне помочь, спасибо!
p[i].eqLiga
не является типом указателя, дважды проверьте типLIGA
- person xnsc   schedule 31.12.2020str
, не выделяя для него память - person Sheik Yerbouti   schedule 31.12.2020