Ich versuche, die Zeichenfolge auf Array [0] zu Personen [0] .name zu speichern, aber ich bekomme diesen Fehler: Zuordnung zu Ausdruck mit Array-Typ. Was soll ich machen?Wie speichere ich eine Zeichenfolge an ein Struktur-Array-Mitglied?
#include <stdio.h>
#include <stdlib.h>
struct person{
char name[25];
};
int main(){
struct person persons[10];
int i=0;
int array[10];
char str[] ="This is a test";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ");
while (pch != NULL)
{
array[i]=pch;
pch = strtok (NULL, " ");
i++;
}
//persons[0].name=array[0]; //error: assignment to expression with array type
printf("persons.name: %s\n", persons[0].name);
printf("array[0] = %s", array[0]);
}
'array [i] = pch;' ist ein Fehler, die Aufmerksamkeit auf den Ausgang Compiler zahlen –
Es gibt viele Compiler-Warnungen , wie die Tatsache, dass 'strtok' nicht definiert ist (weil du' 'nicht eingeschlossen hast) und dass' array [i] = pch' wahrscheinlich falsch ist (und ich bin mir nicht einmal sicher, warum das nicht verursacht ein Kompilierfehler für MinGW). Ich glaube nicht, dass du verstehst, was Arrays sind, also könnte es eine bessere Idee sein, [einen guten Anfängerleitfaden auf C zu erhalten] (// stackoverflow.com/a/562377/824425). –
Es ist nichts falsch mit der Whileloop. Array [10] enthält was enthalten soll. – ayo