指定字符串中一个位置,将该字符串分裂为两个字符串输出,例如“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;
}