我是根据我朋友给出的一个算法写的这段代码。但当我试图实现它时,它就不起作用了。有人能告诉我这里的错误吗?
#include<stdio.h>
void scat(char [], char []);
int i,j;
void main()
{
char s1[10],s2[10];
printf("Enter first string: ");
scanf("%s",&s1);
printf("Enter second string: ");
scanf("%s",&s2);
scat(s1,s2);
}
void scat(char s1[], char s2[])
{
char str1[10],str2[10],str3[20];
for(i=0;str1[i]!=NULL;i++)
str3[i]=str1[i];
for(j=0;str2[j]!=NULL;j++,i++)
str1[i]=str3[j];
printf("\nConcanated string is %s",str3);
}
最佳答案
你在抄什么?str1进入str3,str3进入s1。这是什么意思?。即使是str1,str2也没有任何用处。只是未知字符,所以复制它们是未定义的。试试这个。
void scat(char *s1, char *s2)
{
char str3[20];
for(i=0;s1[i]!='\0';i++){
str3[i]=s1[i];}
for(j=0;s2[j]!='\0';j++,i++)
str3[i]=s2[j];
str3[i]= '\0'; // This is must
printf("\nConcatenated string is %s",str3);
}
关于c - 怎么了我没有将我的字符串连接起来吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58679172/