Ich möchte eine Zeichenfolge scannen und einen char
Zeiger auf diese gescannte Zeichenfolge zeigen.scanf eine Zeichenfolge in einem Zeichenzeiger
int main(int argc, char *argv[]) {
char *string;
scanf("%s",&string);
printf("%s\n",string);
}
Aber gibt eine Warnung
TypWarnung sagen: Format '% s' erwartet Argument vom Typ 'char *', aber Argument 2 hat 'char **'
Wie scanne ich eine Zeichenfolge in einem char *
ohne Warnungen.
Edit: Es funktionierte für den untenstehenden Code mit Warnungen und ich drillte es auf den oben genannten, um sehr spezifisch zu sein.
int main(int argc, char *argv[]) {
int n = 2;
char *strings[2];
for(int i = 0; i < n; i++){
scanf("%s",&strings[i]);
printf("%s\n",&strings[i]);
}
}
Speicher zuerst für String-Variable zuweisen, dann nur "String" statt "& String" übergeben. – Jeyaram
Mit anderen Worten, Sie fragen, wie Sie den Compiler-Fehler verschwinden lassen, wenn Sie noch nicht herausgefunden haben, wie Sie einen Speicherpuffer zuweisen. –
... oder verwenden Sie eine Zeichenfolge fester Länge. Es hängt davon ab, was Sie beim Lesen vorhaben. – Kusalananda