此代码编译无误,但在打开应用程序时显示:
file.exe停止工作
#include <string.h>
#include <stdio.h>
int main() {
char *a = 'Hello';
char *b = 'World';
strcat(a,b);
puts(a);
}
我哪里出错了?
答案 0 :(得分:2)
您需要分配足够的空间,并使用双引号而不是单引号。您可以使用数组。
#include <string.h>
#include <stdio.h>
int main() {
char a[20] = "Hello";
char b[10] = "World";
strcat(a,b);
puts(a);
}
答案 1 :(得分:1)
常量字符串不可修改。这是在C中声明,初始化和修改字符串缓冲区的正确方法:
#include <string.h>
#include <stdio.h>
int main() {
char a[20];
char *b = "World";
strcpy(a,"Hello");
strcat(a,b);
puts(a);
return(0);
}
答案 2 :(得分:1)
您不能在字符指针上执行strcat。您只能对字符数组执行strcat...。对不起,我的先例答案是,查看下面的代码:
#include <string.h>
#include <stdio.h>
int main() {
char a [20];
char b[20];
strcpy(a,"Hello");
strcpy(b,"World");
strcat(a,b);
puts(a);
return(0);
}