2016-08-23 3 views
-1
printf("It is currently %s's turn.\n", current->name); 

Ich frage mich, warum dies zusätzliche newline nach dem% s gedruckt wird. Ich bin mir bewusst, dass Strings in C immer mit \ 0 endet. Wie drucke ich es ohne es?Printf zusätzlichen Newline mit einem String-Wert in printf

+3

'strom-> name' hat eine neue Zeile am Ende. – byxor

+2

Und Strings immer mit '\ 0 'enden,' \ n' ist nur ein neuer Online-Charakter. – byxor

+0

Ja, aber wie zu entfernen die Newline zum Drucken? Da strom-> von einem Benutzer eingegeben wird –

Antwort

6

Ihre variable current->name hat eine neue Zeile in ihr, so dass Sie dieses Newline müssen loszuwerden.

current->name[strcspn(current->name, "\n")] = '\0'; 

Dieses Stück Code wird Ihnen helfen, die unerwünschte Newline loszuwerden. Setzen Sie es vor printf.

+0

Prost Mann, es funktioniert und was bedeutet strcspn? –

+0

@LimEweWin Typische kryptische C-Funktion;) Es wird erklärt [hier] (https://www.techonthenet.com/c_language/standard_library_functions/string_h/strcspn.php) – byxor

+0

Sie können es [hier] (http lesen: // www. tutorialspoint.com/c_standard_library/c_function_strcspn.htm). Es ist eine gute Funktion. – Mirakurun