截取字符串的位置提示一直弄不懂那个大佬能指点一二

原始文本存放在一推数组中,编写函数 mid(str,3,5),截取该串中第3个位置起的,连续5个字符,作为子串。如:str为:abedefgh
 mid(str,3,5),结果是:cdefg
注,如果给的起始位置不对,或者长度不对,则要给出相应提示。


#include "stdio.h"

void mid(char *str,char *s,int i,int len){
	int k=0;
	int cnt = 0;
	if(i<0){
		printf("超出下标\n");
	}
	for(k=i-1;k<i+len-1;k++){
		s[cnt++]=str[k];
	}
}
int main()
{
 	char *str="abcdefghijklmn";   
 	char sub[80]={'\0'};
 	mid(str,sub,3,5);
 	printf("sub=%s",sub);
}

 

#include<stdio.h>

#include<string.h>

 

void mid(char *string_1,int seat_String,int length_String)

{

 int i,star=0;

 char string_2[100]={0};

 int j=strlen(string_1);

 if(seat_String+length_String>100||seat_String+length_String>j)

 {

  printf("ERROR:输入数组初始位置和截取长度有误!\n");

 }

 else

 {

  for(i=seat_String-1;i<length_String+seat_String-1;i++)

 {

  string_2[star]=string_1[i];

  star++;

 }

 }

 puts("截取数组字符串数据为");

 puts(string_2);

}

int main()

{

 char string_1[100];

 int seat_String,length_String;

 gets(string_1);

 printf("请输入想截取数组的起始位置和截取长度:\n");

 scanf("%d,%d",&seat_String,&length_String);

 mid(string_1,seat_String,length_String);

}

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m