5

次のプログラムがあります。

#include <stdio.h>
#include <stdlib.h>

int main()

{
    static char string[12];
    int length,c,d;
    printf("Enter a string :");
    gets(string);
    length=strlen(string);
    printf("\nLength of the string is %d",length);
    for(c=0;c<=length-2;c++)
    {
        d=c+1;
        printf("\t%.*s\n",d,string);
    }
    for(c=length;c>=0;c--)
    {
        d=c+1;
        printf("\t%.*s\n",d,string);
    }
} 

ステートメント%.*sでの の使用法について非常に混乱しています。printfが文字列の表示に使用されていることは知っていますが、このプログラムでの before%sの使用法について混乱しています。また、printf ステートメントの引用符内に記述されているデータ型 ( ) は 1 つだけですが、ステートメントには 2 つの変数が記述されています。.*s%sprintf

4

2 に答える 2

4

format ステートメントでは、幅と精度の値を使用できます。したがって、可変長の文字列を出力するには、 を指定しますprintf("%.*s", length, string)。アスタリスクはlengthに置き換えられます。

于 2013-08-11T06:33:32.317 に答える