此代码想要连接字符串,但不显示输出
#include<stdio.h>
#include<string.h>
main( )
{
char *str1 = "United" ;
char *str2 = "Front" ;
char *str3 ;
str3 = strcat ( str1, str2 ) ;
printf ( "\n%s", *str3 ) ;
}
最佳答案
我会列出代码中的缺陷。
- “United”和“Front”是字符串常量,这意味着它们无法修改。
- strcat 将第二个字符串添加到第一个字符串中,因为第一个输入是常量字符串,因此无法执行该操作。
- printf 只需要“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 ) ;
}
关于c - 如何使用 strcat() 连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095311/