C语言,将数字和字符串拼成一个字符串。用宏来做,用api谁都会!

 我来答
985967518
推荐于2016-05-26 · 知道合伙人教育行家
985967518
知道合伙人教育行家
采纳数:18027 获赞数:109866
14年本科毕业于河南理工大学,至今就读于河南理工大学攻读硕士学位,从事编程学习已有5年。

向TA提问 私信TA
展开全部

宏定义字符串拼接可以使用宏运算##,即 #define strcat(x,y) x##y。

##运算符可以将两个记号(例如标识符)“粘”在一起,成为一个记号。如果其中一个操作数是宏参数,“粘合”会在当形式参数被相应的实际参数替换后发生。考虑下面的宏:

#define MK_ID(n) i##n

下面的声明使用MK_ID创建了3个标识符:

int MK_ID(1), MK_ID(2), MK_ID(3);

预处理后声明变为:

int i1, i2, i3;

例如:

#include <stdio.h>
#define strcat(x,y) x##y
int main()
{
    int strcat(i,1),strcat(i,2);
    i1=10,i2=20;
    printf("%d %d",i1,i2);
    return 0;
}
/*运行结果:
10 20
*/
liufashuai
推荐于2017-12-15 · TA获得超过605个赞
知道小有建树答主
回答量:282
采纳率:0%
帮助的人:265万
展开全部
宏定义有两种运算符,#和##
#运算符将一个宏参数转换成为字符常量
eg: #define PRINT_INT(x) printf(#x " = %d\n",x);
##运算符将两个标识符“粘”在一起,成为一个标识符
eg: #define MK_ID(N) x##n <==> MK_ID(1) = x1

然后你把这两个宏结合起来,就达到你的目的了,而且可以很灵活的随意使用
下面是一种可能例子,你可以根据需要修改
#define HAHA(x,y) (#x##y)
x代表你要输入的数字,y代表字符串
追问
#define haha(s,n) (#s##n)
int id = 1 ;
printf("%s\n",haha("name_",id)) ;
这样为什么不对呢

快点帮忙阿!!!急死了。拜托了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式