C语言语句“ sprintf( szInt [ 0 ] , "%6.6s" , &array[0]); ”中"%6.6s"是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:12:53
分割一个包含12个字符的字符串为两个含6个字符的字符串:
{

// WINCC:TAGNAME_SECTION_START

// syntax:

#define TagPro "pro"

#define TagInt1 "int1"

#define TagInt2 "int2"

// next TagID : 1

// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START

// syntax: #define PicNameInAction "PictureName"

// next PicID : 1

// WINCC:PICNAME_SECTION_END

char array [ MAX_DM_VARTYPE_TEXT_LEN + 1 ];

char szInt [ 2 ] [ 6 + 1 ];

strcpy(array,GetTagChar( TagPro ));

sprintf( szInt [ 0 ] , "%6.6s" , &array[0]);

sprintf( szInt [ 1 ] , "%6.6s" , &array[6]);

SetTagChar( TagInt1 ,szInt [0]);

SetTagChar( TagInt2 ,szInt [1]);

}

sprintf 使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(format specifications)来占据一个位置,在后边的变参列表中提供相应的变量,最终函数就会用相应位置的变量来替代那个说明符,产生一个调用者想要的字符串。
%-m.ns:n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。