猿问

C语言中sprintf赋值问题

  • 在调试一段古老代码时发现的问题,本人C语言一窍不通,请教大神
    sprintf((char *)TekiLim.arr, "%9.9s", TekiyoLim );
    这段代码中TekiyoLim为201201102
    为什么赋值以后,TekiLim.arr的值为201
    声明如下:
    struct { unsigned short len; unsigned char arr[10]; } TekiLim;


摇曳的蔷薇
浏览 726回答 2
2回答

蓝山帝景

 sprintf((char *)TekiLim.arr, "%s", TekiyoLim );

肥皂起泡泡

int sprintf( char *buffer, const char *format, [ argument] … );这个函数包含三个部分的参数:buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。即可选参数的想要输入的数据类型。[argument]...:可选参数,可以是任何类型的数据。函数用法
随时随地看视频慕课网APP
我要回答