首页 > 解决方案 > 在C中返回两个字符串组合的函数

问题描述

所以如果我输入:“Ben”和“Tom”,返回的字符串将是“BTeonm”。我必须在不使用预建函数的情况下做到这一点。我完全不知道如何处理这个问题,因为我对 C 很陌生。

任何提示或帮助将不胜感激!

标签: cstringfunction

解决方案


因为是一个暑假的星期六,我很高兴,我已经为你写了一点代码,但它是不完整的。

代码使用的唯一“预建”功能是puts,我看不出不使用它的方法。

代码有两个问题:

  1. 字符串不能超过 64 个字节。如果它们更长,则结果将被削减。

  2. 字符串的长度应该相等。如果长度不同,则结果将被切割为较短字符串的长度。

现在你要解决这两个问题……我希望你这样做!

您可以从命令行运行代码

插入字符串 1 字符串 2

...它会给你答复!

这里的代码:

#include <stdio.h>

char * intersect(char *c, int clen, const char *a, const char *b);

int main(int argc, char *argv[])
{
    char c[129];

    if (argc<3) {
        puts("Usage: intersect stringA stringB\n");
        return 1;
    }

    puts(intersect(c,sizeof(c),argv[1],argv[2]));

    return 0;
}

char * intersect(char *c, int clen, const char *a, const char *b)
{
    int i=0,j=0;

    while (a[i] && b[i] && j<clen-2){

        c[j++]=a[i];
        c[j++]=b[i++];

    }

    c[j]=0;

    return c;

}

推荐阅读