C语言指定位置分裂字符串

指定字符串中一个位置,将该字符串分裂为两个字符串输出,例如“abcdefg”,指定位置3,则分别输出“abc”,“defg”。要求:1)在子函数中实现字符串分裂功能,并输出分裂后的两个字符串,如果输入的位置小于0或者大于字符串长度,函数输出“eror”并返回-1;2)main函数中包括用户提示:输入字符串和输入指定位置。


#include <stdio.h>
#include <string.h>
int split(char *str, int n)
{
    int len = strlen(str);
    if (n > len || n < 0)
    {
        puts("eror");
        return -1;
    }
    char ch;
    ch = str[n];
    str[n] = '\0';
    puts(str);
    str[n] = ch;
    puts(str + n);

    return 0;
}

int main(void)
{
    char str[200];
    int n;
    scanf("%s %d", str, &n);
    split(str, n);
    return 0;
}

该回答引用ChatGPT

代码中,split_string函数实现了字符串的分裂功能,如果指定的位置pos小于0或者大于字符串长度,函数会输出"error"并返回-1,否则会将字符串分裂成两个部分,并输出两个子字符串。在main函数中,先提示用户输入字符串和指定位置,然后调用split_string函数进行字符串分裂。


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

int split_string(char* str, int pos, char* str1, char* str2) {
    int len = strlen(str);
    if (pos < 0 || pos > len) {
        printf("error\n");
        return -1;
    }
    strncpy(str1, str, pos);
    strncpy(str2, str + pos, len - pos);
    str1[pos] = '\0';
    str2[len - pos] = '\0';
    printf("%s, %s\n", str1, str2);
    return 0;
}

int main() {
    char str[100], str1[100], str2[100];
    int pos;
    printf("请输入字符串:");
    scanf("%s", str);
    printf("请输入分裂位置:");
    scanf("%d", &pos);
    split_string(str, pos, str1, str2);
    return 0;
}


  • 先看截图:

img

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^