C语言问题sprintf参数问题

sprintf((char*)s,d)和sprintf(s,"%s",d);有啥区别呢,小白求解... sprintf((char * )s,d)和sprintf(s,"%s",d);有啥区别呢,小白求解 展开
 我来答
黎明之鸟l
2017-12-28 · TA获得超过263个赞
知道小有建树答主
回答量:247
采纳率:67%
帮助的人:126万
展开全部
// crt_sprintf.c
// compile with: /W3
// This program uses sprintf to format various
 
//data and place them in the string named buffer.
// 程序使用sprintf 将各种数据格式化后置于字符数组buffer中
#include <stdio.h>
int main( void )
 
{
   char  buffer[200], s[] = "computer", c = 'l';
   int   i = 35, j;
   float fp = 1.7320534f;
   // 格式化并打印各种数据到buffer
   j  = sprintf( buffer,    "   String:    %s\n", s ); // C4996
   j += sprintf( buffer + j, "   Character: %c\n", c ); // C4996
   j += sprintf( buffer + j, "   Integer:   %d\n", i ); // C4996
   j += sprintf( buffer + j, "   Real:      %f\n", fp );// C4996
    
   printf( "Output:\n%s\ncharacter count = %d\n", buffer, j );
}

Output:

String: computer

Character: l

Integer: 35

Real: 1.732053

character count = 79

看懂这里你就懂了。

sprintf((char * )s,d)按照你的意思,这个用法是错误的。sprintf(s,"%s",d)中的d是可选参数但是中间的格式化字符串是不可去掉的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式