Ⅰ 基础问题,c语言怎样拼接两个宏定义的字符串
宏定义的字符串 都是有""包含的
而在C中,两个用""包含的字符串,在没有任何可见字符(不包括空格,换行,tab)分隔,写在一起的时候 会当做一个字符串处理
也就是
"abc""def"
和
"abcdef"
是等效的。
所以 两个宏定义字符串,要拼接一起,直接写就好了
#defineA"a123"
#defineB"b456"
printf("%s",AB);
输出 a123b456
Ⅱ c语言中,两个字符指针怎么进行拼接
先加头文件#include<string.h>
char a[10]="123";
char b[10]="abc";
strcat(a,b); //连接两个字符串,连接后的字符串存放在a中,数组a中有足够空间
printf("%s",a); //输出连接后的字符串
或:
#include<string.h>
char a[10]="123";
char b[10]="abc";
char c[20];
strcpy(c,a); //把串a复制到有足够空间的c中
strcat(c,b); //把b连接到c的串尾
Ⅲ c语言字符串拼接
显示(explictly)初始化的意思就是你给变量设置好名字立即给它赋值。
报错是 你给数组赋值的方式不对
Ⅳ C语言中字符串拼接函数问题
不是说一定不行,也有可能可以。像你这种定义就有可能可以,因为如果s1,s2 在分配内存时就是连续的,那么就是越界了,你这条打印出来也会对,因为他没有越界到别的地方,都是字符串空间,你要同时把s2也打印出来,看看s2有没有被改变。c并不检测越界,只有在动行时有可能会出现执行错误。
Ⅳ C语言字符串拼接问题
因为你数组a,初始化的时候没有指定具体的大小,所以是按初始化的值来取的大小,也就是4。你两个一下合并,导致数组a越界了,所以出错了
Ⅵ 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语言实现两个字符串的拼接
for(;*s!='\0';s++) *s=*s;-->为什么一定要有这一句? 不是非要这句,而是要上面一句for(;*s!='\0';s++);这是将本函数中s的地址移到源s(主函数中)的末尾(是结束符的地方)。 这样才能在后面拼接t。 没有*s=*s只要有分号就可以。
Ⅷ C语言中两字符怎么拼接
可以先定义两个字符数组 分别存放需要拼接的字符.然后使用strcpy()函数来实现拼接,