题目
请编写函数,求子串。
函数原型
char* StrMid(char *dst, const char *src, int idx, int len);
说明:函数取源串 src 下标 idx 处开始的 len 个字符,保存到目的串 dst 中,函数值为 dst。若 len 值不正确,则自动修正。若 idx 值不正确,则目的串为空串。
裁判程序
#include <stdio.h>
char* StrMid(char *dst, const char *src, int idx, int len);
int main()
{
char a[128], b[128];
int s, n;
gets(a);
scanf("%d%d", &s, &n);
StrMid(b, a, s, n);
puts(b);
return 0;
}
/* 你提交的代码将被嵌在这里 */
样例
输入样例1
abcd
1 2
输出样例1
bc
输入样例2
abcd
1 5
注:5 不正确,按 3 处理。
输出样例2
bcd
输入样例3
abcd
-5 2
输出样例3
注:输出为空串。
解答过程
char* StrMid(char *dst, const char *src, int start, int len)
{
int i=0,j=0;
char str[2001];
if(len<0)
len=0;
if(start <0||start > strlen(src)){
dst[0]='\0';
return dst;
}
for(i =start; src[i]!='\0'; i++){
if(i>=start&&i<start+len){
dst[j++] = src[i];
}
}
dst[j] = '\0';
return dst;
}