2016-02-07 93 views
-2

大寫第一characers我對取得包含有人的名字字符串,並打印出名字的首字母大寫代碼,每當我跑我的代碼,我不斷收到兩次打印的縮寫工作,我不知道如何解決這個問題並獲得所需的輸出。分割字符串和印刷用C

這裏是我的代碼:

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

int main(void) 
{ 
    string name = GetString(); 
    char* pointer; 
    pointer = strtok(name, " "); 
    while (pointer != NULL) 
    { 
     printf("%c", putchar(toupper(pointer[0]))); 
     pointer = strtok (NULL, " "); 
    } 
    printf("\n"); 
} 

,當我與例如運行代碼:艾哈邁德·薩拉赫·埃爾丁

輸出:

AASSEE 

我只需要:

ASE 
+0

你爲什麼要使用的putchar *和* printf的?他們都輸出一個字符。 –

回答

0

您正在使用printf()putchar()你只需要其中的一個。當你調用putchar()它返回輸出的字符,然後再傳遞到printf()並輸出。

改變,要

fputc(toupper(pointer[0]), stdout); 
+0

謝謝!我剛剛刪除了putchar,它工作! –