繁体   English   中英

这里有什么问题? 我没有连接我的字符串?

[英]What's wrong here? I'm not getting my string concatenated?

我用我朋友给出的算法编写了这段代码。 但是当我尝试实现它时它不起作用。 谁能在这里告诉我错误?

#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);
}
#include<stdio.h>
void scat(char [], char[]);
int main()
{

    char s1[10], s2[10];
    printf("Enter first string: ");
    scanf("%s", s1);

    printf("Enter second string: ");
    scanf("%s", s2);

    scat(s1, s2);
    return 0;
}

void scat(char s1[], char s2[])
{
    char str3[20];
    int i,j;
    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';
    printf("\nConcanated string is %s", str3);
}

U 在 function 中使用了未声明的变量。 我也修正了你犯的一些错误。

你在复制什么? 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,字符串只是指向 char arrays 的指针,因此它们不能真正连接起来。 但我们可以用另一种方式组合它们。 我们可以使用 string.h 库中的 strcat。 这有效:

#include <stdio.h>
#include <string.h>
#define MAX_LIMIT 200

int main() {    char str1[200], str2[200];

    printf("Enter the first string: ");     
    fgets(str1, MAX_LIMIT, stdin);

    printf("Enter the second string: ");    
    fgets(str2, MAX_LIMIT, stdin);

    strcat(str1, str2);

    printf("\nConcanated string is %s", str1);

    return 0; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM