2016-11-05 51 views
0
#include <stdio.h> 
#include <cs50.h> 
#include <string.h> 
#include <ctype.h> 

int main(int argc, string argv[]) 
{ 
    for (int i = 0; i < argc; i++) 
    { 
     printf ("%c", toupper(argv[i][0])); 
    } 
    printf ("\n"); 
} 

它應該把你的全名並返回你的首字母縮寫。它返回它應該的內容,除了它始終返回輸出之前的一段時間。我的輸出始終打印'。'在我預期的產出之前。 CS50 PSET2

+1

'int i = 0' - >'int i = 1' – BLUEPIXY

+1

argv [0]對應於可執行文件的名稱。所以,從1開始。 –

回答

0

打印argv字符串數組的每個元素的第一個字符。第一個元素argv[0]是可執行文件的名稱。您可能會調用您的可執行文件爲./myprogram,因此首先打印.

你應該列舉argv在進入1號開始。此外,你應該投的char(unsigned char)因爲toupper()只爲unsigned char類型和特殊值EOF,不是char類型的潛在負值的所有值定義如果它是默認簽名的。

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

int main(int argc, char *argv[]) { 
    for (int i = 1; i < argc; i++) { 
     putchar(toupper((unsigned char)argv[i][0]))); 
    } 
    putchar('\n'); 
    return 0; 
} 
相關問題