我正在尝试编写一个程序,该程序在C中接受两个字符串输入,然后在两个字符串交错时产生结果。

我想要的一个例子:

input: abdc
input: efgh

result: aebfdgch


到目前为止,这是我在那部分内容中所使用的少量代码。

#include <stdio.h>
#include <string.h>

#define maxLen 100

int main() {

   char string1[maxLen];
   char string2[maxLen];

   printf("please enter a string of up to 100 characters: ");
   fgets(shuffleString,maxLen,stdin);

   printf("please enter another string of up to 100 characters: ");
   fgets(shuffleString2,maxLen,stdin);

   return 0;
}


我已经尝试了很多方法来使改组工作正常进行,但是我似乎什么也没做。这是用于家庭作业的,因此我并不想让别人为我编写代码,但是一些示例和解释会很好。另外,如果还不很清楚,这是针对C级入门课程的,因此,我希望将事情保持在尽可能接近我的水平的水平。

最佳答案

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *strlace(char *str1, char *str2)
{
    int i;
    int len = strlen(str1) + strlen(str2) + 1;
    char *str = (char*)malloc(len * sizeof(char));

    for (i = 0; i < strlen(str1); ++i) {
        str[i*2] = str1[i];
    }

    for (i = 0; i < strlen(str2); ++i) {
        str[1+i*2] = str2[i];
    }

    str[len - 1] = 0;

    return str;
}

int main()
{
    char *str1 = "abdc";
    char *str2 = "efgh";
    char *str3 = strlace(str1, str2);

    puts(str3);

    free(str3);

    return 0;
}


似乎有效。
请享用。

关于c - 如何在c中交织两个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15240145/

10-12 05:18