用dev-c++实现值传递编码

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


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

void cut(char* str, int start, int end, char* result) {
    int len = strlen(str);
    if (start < 0 || end >= len || start > end) {
        result[0] = '\0';
        return;
    }
    int i, j;
    for (i = start, j = 0; i <= end; i++, j++) {
        result[j] = str[i];
    }
    result[j] = '\0';
}

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

int main() {
    char str1[100], str2[100], str3[100], str4[100], result[200];
    int start, end;
    printf("请输入字符串1:");
    scanf("%s", str1);
    printf("请输入字符串2:");
    scanf("%s", str2);
    printf("请输入截取范围的起始位置和结束位置(空格分隔):");
    scanf("%d %d", &start, &end);
    cut(str1, start, end, str3);
    cut(str2, start, end, str4);
    connect(str3, str4, result);
    printf("拼接结果为:%s\n", result);
    return 0;
}