2016-12-30 6 views
-8
#define _CRT_SECURE_NO_DEPRECATE 
#include <stdio.h> 
#include <string.h> 

int main(void) 
{ 

    int numChars = printf("Pls give me a floor to stand on\n"); 
    while (numChars>1) 
    { 
     printf("-"); 
     numChars--; 
    } 
    getchar(); 
    return 0; 

} 

1番目の質問f.eを使用するだけで、あらゆる種類の文字列の長さを見つけることができます。 int numChars = printf( "Pls ...")、それは私にstringの要素の正確な数を与えるでしょうか?誰でも私のコードをcで説明することができます

2番目の質問はwhile文の条件を考慮しています。なぜnumChar> 1が複数でなければならないのですか。これは前の数値がすべて1未満であることを意味しますか?

+0

'strlen'を使用して文字列のサイズを取得します。 – haccks

+0

私はstrlenについて知っています、私の質問は、私の例で見つかった文字列の長さがstrlenに代わる方法ですか?ので、それを遵守し、正しい結果を与えたが、私は番号を取得している方法を説明するソースを見つけることができませんでした – Sean

+0

下記の[回答](http://stackoverflow.com/a/41395720/2455888)をお読みください。 – haccks

答えて

1

printf関数は、印刷される文字数を返します。したがって、印刷が正常に行われると、文字列内の文字数が返されます。

その後、ループは-文字を印刷された文字数よりも1少ない数だけ印刷します。これは最後に\n文字を説明するためです。

したがって、最終結果は、その下に------という行の最初の行になります。

0

1)printfは、コンソールに表示される文字数を返します。だからここ "Pls私に立つ床を与える" 31を返します。そして、31あなたに変数numCharsに格納されます。 whileループは、コンソールに ' - 'を表示し続け、各印刷後にカウントを減らします。条件が満たされるまで、すなわちnumCharが1を超えるまでループが続きます。

2)これは条件チェックで、numCharの初期値は31です。

関連する問題