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]);
}
{
// 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个字符正常输出。