PTA:求子串*

题目

请编写函数,求子串。

函数原型
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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值