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

我想知道爲什麼在%s之後打印出額外的換行符。我知道C中的字符串總是以\ 0結尾。我如何在沒有它的情況下打印它?Printf在printf中插入字符串值的附加換行符

+3

'current-> name'在結尾處有一個換行符。 – byxor

+2

字符串總是以'\ 0'結尾,'\ n'只是一個換行符。 – byxor

+0

是的,但如何去除打印的換行符?因爲當前 - >來自用戶輸入 –

回答

6

你的變量current->name有一個換行符,所以你需要擺脫那個換行符。

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

這段代碼將幫助您擺脫不需要的換行符。把它放在printf之前。

+0

歡呼的人,它的工作原理和strcspn是什麼意思? –

+0

@LimEweWin典型的神祕C函數;)這裏解釋[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