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

なぜ%sの後に改行が追加されているのでしょうか。私は、Cの文字列は常に\ 0で終わっていることを認識しています。それを使わないで印刷するには?printfに文字列値を挿入した追加の改行を印刷する

+3

'current-> name'の最後に改行があります。 – byxor

+2

文字列は常に '\ 0'で終わり、' \ n'は単なる改行文字です。 – byxor

+0

ええ、どうやって印刷用の改行を削除するのですか?電流>はユーザーの入力 –

答えて

6

あなたの変数current->nameに改行があるので、その改行を取り除く必要があります。

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

このコードは不要な改行を取り除くのに役立ちます。 printfの前に入れてください。

+0

うれしい男、それは動作し、strcspnは何を意味しますか?典型的な不可解なCの関数@LimEweWin –

+0

;)それは[こちら]説明です(https://www.techonthenet.com/c_language/standard_library_functions/string_h/strcspn.php) – byxor

+0

あなたは[こちら]それを読むことができます(http:// WWW。 tutorialspoint.com/c_standard_library/c_function_strcspn.htm)。それは良い機能です。 – Mirakurun

関連する問題