C语言宏定义
#include <stdio.h>#include <string.h>
#define STR(str1, str2, str3, sum) strcat(str1,strcat(str2,strcat(sum, str3)))
void main(void)
{
char s1[]="I Love ";
char s2[]="China ";
char s3[]="Forever ";
char sum[]=" ";
STR(s1, s2, s3, sum);
printf("%s\n",s1);
printf("%s\n",s2);
printf("%s\n",s3);
printf("%s\n",sum);
}
请问我这个程序有什么问题?为什么不能运行呢?
麻烦你以后直接贴代码,用附加图片中的方法贴代码。你的程序问题是当你字符串连接时,开辟的存储空间不够。我 改了一下。#include <stdio.h>
#include <string.h>
#define STR(str1, str2, str3, sum) strcat(str1,strcat(str2,strcat(sum, str3)))
void main(void)
{
char s1="I Love ";
char s2="China ";
char s3="Forever ";
char sum=" ";
STR(s1, s2, s3, sum);
printf("%s\n",s1);
printf("%s\n",s2);
printf("%s\n",s3);
printf("%s\n",sum);
} 頂支持一下 楼上正解 同问!!!!!!!!!!!!!! 流行语 发表于 2014-8-10 18:47
麻烦你以后直接贴代码,用附加图片中的方法贴代码。你的程序问题是当你字符串连接时,开辟的存储空间不够。 ...
顺利解决,太感谢了!支持小甲鱼老师! src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
页:
[1]