2016-11-03 5 views
-1

同僚が私に何かを教えようとしていましたが、失敗しました。彼が何を話しているのか理解できません。大きな質問、文字列C

私はstring1とstring2だけでなく、(int)番号も与えられています。

私は、両方の文字列のユーザー入力によって指定された文字数を比較し、より大きな部分文字列を表示する必要があります。 他の誰かが彼にそれをする方法を示したので、彼はこれを行います。

if (result > 0) { 
    printf("sub-string1 \'%.*s\' is bigger\n\n", number, string1); 
} 
else if (result < 0) { 
    printf("sub-string2 \'%.*s\' is bigger\n\n", number, string2); 
} 
else { //if result == 0 
    printf("Both sub-strings \'%.*s\' and \'%.*s\' are equal\n\n", number, string1, number, string2); 
} 

私の質問は何ですか?あなたが私のおばあちゃんと話しているかのように明示してください。彼女はコンピュータを全く理解していません。 は、これは何です:

\'%.*s\' 

事前にありがとうございます。

+1

を役に立てば幸いその修飾語が何を意味するのか。 ( '\ 'は修飾語の一部ではなく、それは印刷されたテキストのリテラルです) – UnholySheep

+0

ありがとうございます....... –

+0

ところで、文字列の一重引用符をエスケープする必要はありません。 – Barmar

答えて

0

\'%.*s\'は、string1で指定されたテキストの文字列に置き換えられます。文字の長さは、numberです。

シンボルの詳細な説明:

\' simply means ' 
% means whatever follows it will be replaced by what you provided 
. indicates what follows it is a number, which specifies the length of the string(only in the case of string) 
* means it will be replaced by a numerical variable (here number) 
s means it will be replaced by a string 

は、[このリンク](http://www.cplusplus.com/reference/cstdio/printf/)はかなり良い説明があり、それは