原始文本存放在一推数组中,编写函数 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