Ich brauche Strings dynamisch zu bekommen, aber da ich mehr als eine Zeichenfolge erhalten muss, muss ich Funktionen verwenden. Bisher habe ich diese (Ich habe // **** an Orten denke ich falsch sein könnte)Zeichenfolge mit C-Funktion erhalten
char* getstring(char *str);
int main() {
char *str;
strcpy(str,getstring(str));//*****
printf("\nString: %s", str);
return 0;
}
char* getstring(char str[]){//*****
//this part is copy paste from my teacher lol
char c;
int i = 0, j = 1;
str = (char*) malloc (sizeof(char));
printf("Input String:\n ");
while (c != '\n') {//as long as c is not "enter" copy to str
c = getc(stdin);
str = (char*)realloc(str, j * sizeof(char));
str[i] = c;
i++;
j++;
}
str[i] = '\0';//null at the end
printf("\nString: %s", str);
return str;//******
}
printf
in der Funktion funktioniert, aber nicht zurück in main
Funktion. Ich versuchte, void
zurückzugeben, *s
loszuwerden oder hinzuzufügen, einen anderen str2
machend und tring zu strcpy
dort oder nicht unter Verwendung strcpy
überhaupt. Nichts scheint zu funktionieren. Misse ich etwas? Oder vielleicht ist das überhaupt nicht möglich // Vielen Dank für Ihre Antworten
Wir hatten in Jahr 1 hier zu kämpfen. Das einfache Zeug in C ist für mehr als 5% der Menschen nie einfach. –
Bitten Sie Ihren Lehrer zu stoppen Casting malloc – coderredoc
@coderredoc Das Casting ist optional? Ich würde es als Selbstdisziplin betrachten, wenn nichts anderes. –