2017-06-04 6 views
0

誰かがこの問題を助けてくれますか?私のプログラムは、行の最後に+を印刷するようにしてもらいたいですか?whileループ中のすべての行の末尾にcharを追加する

私のコードは次のとおりです。入力、 "マハナッドスタック"(出力間違った)で

#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( "="); pch = strtok(NULL、 "\ n"、pch); pch = strtok(NULL、 "\ n"、pch); pch = strtok n ");'? – BLUEPIXY

+5

あなたは '+'について質問し、 '='を表示します - 誰が混乱していますか:あなたか私ですか? –

+0

ようこそスタックオーバーフロー。 [ツアー](https://stackoverflow.com/tour)と[質問](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'を保持していた特別な理由はありますか?ちょっと興味があるんだけど。 printf( "=%s + \ n"、pch); 'どちらの方法でも動作します。 –

+0

ああ、そうだよ、 'str1'は役に立たない。 ...そして、 'pch = strtok(pch、" ");'を追加する必要がありました –

関連する問題