这个问题在这里已有答案:
此代码想要连接字符串,但它不显示输出
#include<stdio.h>
#include<string.h>
main( )
{
char *str1 = "United" ;
char *str2 = "Front" ;
char *str3 ;
str3 = strcat ( str1, str2 ) ;
printf ( "\n%s", *str3 ) ;
}
我将列出代码中的缺陷。
有两种方法可以纠正代码,a)通过scanf获取str1 b)通过strcpy获取str1
我提供了第二个解决方案,str1和str3也都有最终答案。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main( )
{
char *str1=malloc(20 * sizeof(char));
char *str2 = "Front" ;
char *str3 ;
if(str1){
strcpy(str1,"United");
str3 = strcat ( str1, str2 ) ;
printf ( "%s\n", str3 ) ;
free(str1);
}
else{
printf("malloc failure!\n");
}
}
参考评论我添加了一个没有动态内存分配的版本:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main( )
{
char str1[20];
char *str2 = "Front" ;
char *str3 ;
strcpy(str1,"United");
str3 = strcat ( str1, str2 ) ;
printf ( "%s\n", str3 ) ;
}