当前位置:首页 » 编程语言 » c语言宏连接字符串
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言宏连接字符串

发布时间: 2022-02-08 00:59:03

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

宏定义字符串拼接可以使用宏运算##,即 #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>
#definestrcat(x,y)x##y
intmain()
{
intstrcat(i,1),strcat(i,2);
i1=10,i2=20;
printf("%d%d",i1,i2);
return0;
}
/*运行结果:
1020
*/

⑵ C语言连接字符串函数

应该是可以的加上几个printf看一下到底走到哪里了,保证输入的字符串不会越界也挺重要

⑶ C语言 连接符号 # ## 宏定义

您好,我来试着解答一下你的疑惑。

先上两张图:

这个说的很明白,#粘合后成为“字符串”,而##粘结后成为“记号”。

所以,"token" #n之后,比如"token" #8,会显示为字符串"token8" ,这时调用"token8"[0],就相当于你取字符串"token8"中第一个字符,跟使用数组类似了(这一点存疑的话可以自己试验,比如"abcde[2]"代表c,跟用字符数组是一样的)。

但是"token" ##n之后,比如"token" ##8,会显示为记号token8,这时的token8相当于变量名而不是一个字符串字面量,所以token8[0]当然就是指这个数组里第一个元素了。

若有疑问请提出...

您的采纳是我们的动力~~

⑷ C语言 宏定义变字符串问题

宏不是函数,顶多可以用有参宏,但宏绝不是函数,宏,说白了,它的作用就是代码字面上的替换

#define FUN() “ !C*!D+A*!B*!D+!A*B*!C+A*B*C*D ”

char *str=FUN();

就完全等价于char *str=“ !C*!D+A*!B*!D+!A*B*!C+A*B*C*D ” ;

⑸ c语言有没有办法在宏后面拼接一个字符串

没有办法,还是用函数实现吧,不行的话使用c++的string类型何以拼接字符串

因为c是变量,你要得到的拼接字符串却在静态存储

c++string类型:
http://blog.csdn.net/fym0512/article/details/7708094

⑹ 用C语言怎么将两个字符串连接起来

这些是宏的功能。

#是将一个参数转换为字符串。##可以连接字符串

比如这样:

#include <stdio.h>

#define STR(a,b) a##b

int main()

{

printf("%s ",STR("123","456"));

return 0;

}

⑺ C语言:将两个字符串连接起来。

这些是宏的功能。#是将一个参数转换为字符串。##可以连接字符串 比如这样:#include
<stdio.h>
#define
STR(a,b)
a##bint
main()
{ printf("%s
",STR("123","456"));
return
0;
}

⑻ C语言用宏实现将字符串与数字连接成一个字符串。其中数字是变化的。

这个是生涩的编译器指令,告诉编译器编译的时候把前后两部分合并到一块。
编译器工作的时候,首先把注释行转化为空格,按宏展开,处理预编译信息;
例如:
#ch#ar 处理后就是 char。

⑼ C语言 宏定义字符串问题

用拼接符可以做到
#define STRING(arg) "AAAAAAA"##arg##"BBBBBBBBBB"
但arg必须是个常量,不能是变量

⑽ 基础问题,C语言怎样拼接两个宏定义的字符串

宏定义的字符串 都是有""包含的

而在C中,两个用""包含的字符串,在没有任何可见字符(不包括空格,换行,tab)分隔,写在一起的时候 会当做一个字符串处理

也就是

"abc""def"


"abcdef"

是等效的。

所以 两个宏定义字符串,要拼接一起,直接写就好了

#defineA"a123"
#defineB"b456"
printf("%s",AB);

输出 a123b456