c语言函数问题 ,求解答

  2.字符串strl和str2作为输入参数,分别传入cut函数。cut函数负责从传入的字符串中截取指定范围(例如:从第2个字符开始,到第5个字符结束的部分)的内容(截取范围也作为cut函数的输入参数传入。)。截取结果分别放在字符串str3和str4中。再将str3和str4作为输入参数传入connect 函数。connect函数负责将传入的两个字符串顺序拼接在一起。编程实现上述函数,要求最终输出拼接结果。不能用全局变量。↵  

以下是一个可能的实现:

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

void cut(char* src, char* dst, int start, int end) {
    int len = strlen(src);
    int i;
    for (i = start; i <= end && i < len; i++) {
        dst[i - start] = src[i];
    }
    dst[i - start] = '\0';
}

void connect(char* str1, char* str2, char* dst) {
    int len1 = strlen(str1);
    int len2 = strlen(str2);
    int i;
    for (i = 0; i < len1; i++) {
        dst[i] = str1[i];
    }
    for (i = 0; i < len2; i++) {
        dst[len1 + i] = str2[i];
    }
    dst[len1 + len2] = '\0';
}

int main() {
    char str1[100], str2[100], str3[100], str4[100], result[200];
    int start, end;

    printf("请输入字符串str1:");
    fgets(str1, sizeof(str1), stdin);
    printf("请输入字符串str2:");
    fgets(str2, sizeof(str2), stdin);
    printf("请输入截取范围的起始位置:");
    scanf("%d", &start);
    printf("请输入截取范围的结束位置:");
    scanf("%d", &end);

    cut(str1, str3, start, end);
    cut(str2, str4, start, end);
    connect(str3, str4, result);

    printf("拼接结果为:%s\n", result);

    return 0;
}

在这个实现中,cut函数接受一个源字符串src和一个目标字符串dst,以及截取范围的起始位置start和结束位置end。它使用一个循环来迭代src中的字符,并将dst中的对应字符设置为src中的字符。最后,它将在dst的末尾添加一个null字符,以将其设置为字符串。

connect函数接受两个源字符串str1和str2,以及一个目标字符串dst。它使用两个循环来分别将str1和str2的字符迭代到目标字符串dst中,并在最后追加一个null字符。

主函数从用户那里接收str1、str2、start和end,并使用这些参数调用cut和connect函数。最后,它输出连接的结果字符串。