2016-11-05 7 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と呼び出されるため、最初に.が表示されます。

あなたはtoupper()のみすべてのタイプunsigned charの値と特別な値EOF、ないcharタイプの潜在的な負の値のために定義されているのでさらに、あなたは(unsigned char)としてcharをキャストしなければならないエントリ番号1から始まるargvを列挙すべきですデフォルトで署名されている場合

#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; 
} 
関連する問題