C语言,将数字和字符串拼成一个字符串。用宏来做,用api谁都会!
2个回答
推荐于2016-05-26 · 知道合伙人教育行家
关注
展开全部
宏定义字符串拼接可以使用宏运算##,即 #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
*/
展开全部
宏定义有两种运算符,#和##
#运算符将一个宏参数转换成为字符常量
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代表字符串
#运算符将一个宏参数转换成为字符常量
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)) ;
这样为什么不对呢
快点帮忙阿!!!急死了。拜托了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询