2017-06-04 73 views
0

有人可以幫助我解決這個問題,我希望我的程序能夠在每行結束時打印+在while循環中的每一行的末尾添加一個字符

我的代碼是:

#include <stdio.h> 
#include <string.h> 

int main() 
{ 

char str[65]; 
char * pch; 
char str1[65]; 

fgets (str, 100, stdin); 

    pch = strtok (str," "); 
    while (pch != NULL) 
    { 
    str1=pch; 
    printf("="); 
    printf ("%s\n",pch); 
    pch = strtok (NULL, " "); 
    } 

return 0; 
} 

隨着輸入 「馬漢納德堆棧」(輸出錯誤):

=Muhannad 
=Stack 

正確:

=Muhannad+ 
=Stack+ 

因此,我的問題是如何在每個印刷行的末尾添加+

+1

'str1 = pch; printf(「=」); printf(「=%s = \ n」,pch); pch = strtok(NULL,「\ n」,pch); pch = strtok(NULL,「」); n「);'? – BLUEPIXY

+5

你問'+'並顯示'=' - 誰困惑:你還是我? –

+0

歡迎來到Stack Overflow。請查看[Tour](https://stackoverflow.com/tour)和[Asking](https://stackoverflow.com/help/asking)。 – Shiro

回答

0

這是什麼工作:

#include <stdio.h> 
#include <string.h>  
int main() 
{  
    char str[65]; 
    char * pch; 
    char str1[65];  
    fgets (str, 100, stdin);  
    pch = strtok (str,"\n"); 
    pch = strtok (pch," "); 
    while (pch != NULL) { 
    printf ("=%s+\n",pch); 
    pch = strtok (NULL, " "); 
    } 
    return 0; 
} 
+0

您在示例中保留了'str1'的任何特定原因?只是好奇。你也可以寫'for(pch = strtok(str,「」); pch; pch = strtok(NULL,「\ n」))printf(「=%s + \ n」,pch);'無論哪種方式都行。 –

+0

噢是的,'str1'沒用。 ...我必須添加'pch = strtok(pch,「」);'才能正常工作 –

相關問題