我是根据我朋友给出的一个算法写的这段代码。但当我试图实现它时,它就不起作用了。有人能告诉我这里的错误吗?

#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/

10-11 16:49