2017-02-12 8 views
0
int main(void) { 
    char x[50]; 

    fgets(x, 50, stdin); 
    printf("%s", &(x[1])); 
} // main 

このプログラムにHello Worldと入力すると、ello Worldが出力されますが、eという文字が返されます。どうやってやるの?Cの文字列から1文字だけを戻す方法は?

+8

使用 'のprintf( "%cの"、Xを[1]);'。データ型の知識は、どのプログラミング言語でも必要です。 – haccks

+2

私はポインタ、デリファレンス、およびヌルで終了する文字列について読むことをお勧めします。 – redxef

+0

['printf' man page here](https://msdn.microsoft.com/en-us/library/wc7014hz.aspx)は複雑で、他のマニュアルページにもリンクしています。あなたの頭が爆発するまで1時間または3回探検するのは夜間よりも良いでしょう。 –

答えて

3

あなたはprintfで単一の文字を印刷するための2つのオプションがあります。

  • 使用%c書式指定子を、そして印刷したい文字(ない文字へのポインタ)を渡す、または
  • 使用

    :最初のオプションは次のようになります。つまり%.1s

1文字の制限と%s

printf("%c", x[1]); 

第2のオプションは、次のようになります

printf("%.1s", &x[1]); 

注意長さに上部制限を指定1の前にドット。 .のドットがない場合、番号はの下限をに設定します。

+0

注:printfに関係しないオプションもあります。 'putchar(x [1]);' –

0

あなたはで簡単にそれを行うことができます。

printf("%c",x[1]); 
関連する問題