sprintf和strcpy的区别

sprintf(s.msg,"错误:电文号不是C50114");strcpy(s.msg,"trimstructure时出错");这两句语句实现的功能是不是一样的都是拷贝... sprintf(s.msg,"错误:电文号不是C50114");
strcpy(s.msg,"trim structure时出错");
这两句语句实现的功能是不是一样的都是拷贝,sprintf和strcpy有什么区别啊?
sprintf(s.msg," ");
sprintf这样用行不行?参数就一个空字符串
展开
 我来答
许诗文00
推荐于2016-05-27 · TA获得超过4290个赞
知道小有建树答主
回答量:425
采纳率:100%
帮助的人:26.4万
展开全部

strcpy,sprintf,的区别

这些函数的区别在于实现功能以及操作对象不同。
strcpy 函数操作的对象是 字符串 ,完成从源字符串到目的字符串的拷贝功能。
snprintf 函数操作的对象 不限于字符串  :虽然目的对象是字符串,但是源对象可以是字符串、也可以是任意基本类型的数据。这个函数主要用来实现 (字符串或基本数据类型)向 字符串 的转换 功能。如果源对象是字符串,并且指定 %s  格式符,也可实现字符串拷贝功能。

  • strcpy 是最合适的选择:效率高且调用方便。

  • snprintf 要额外指定格式符并且进行格式转化,麻烦且效率不高。

qqaben
推荐于2016-10-08 · TA获得超过575个赞
知道小有建树答主
回答量:134
采纳率:100%
帮助的人:128万
展开全部
sprintf(s.msg," "); 可以这样写

sprintf(s.msg,"错误:电文号不是C50114");
strcpy(s.msg,"trim structure时出错");

这两句执行结果都是 给 s.msg 赋值了,在这两句上实现的功能一样

区别:strcpy 只是简单的拷贝,sprintf 是格式化输出

比如 int x=100;

sprintf(s.msg,"x=%d",x);

s.msg的结果是 x=100 这个字符串,用strcpy就做不到这一点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yql1990115
2010-07-13 · TA获得超过304个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:199万
展开全部
如果我没记错的话
sprintf是输出函数
strcpy是字符串拷贝函数
主要的区别是,sprintf是将s.msg字符串 和 错误:电文号不是C50114 输出
strcpy是将"trim structure时出错" 拷贝到s.msg

{sprintf(s.msg," ");sprintf这样用行不行?参数就一个空字符串 } 这个应该可以
我u盘没带在身边,无法运行win TC;所以无法给你验证,只是凭经验说的,希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2010-07-13 · TA获得超过5532个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4438万
展开全部
sprintf 是带格式的, 格式的语法跟printf一样
strcpy是简单的拷贝

就你这个例子,因为你没用到sprintf的格式,所以就是一回事了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潘良段干宛菡
2019-02-02 · TA获得超过3740个赞
知道大有可为答主
回答量:3048
采纳率:30%
帮助的人:219万
展开全部
sprintf
用于格式化输出到字符串,主要用于int,double等数据向字符串的转化
strcpy
用于字符串的复制,主要适用于字符串,复制到源串的末尾终止
memcpy
用于内存的复制,适用于所有数据类型,需要指明复制长度
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式