欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[C语言] 提取子字符串

程序员文章站 2022-08-09 19:35:03
编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: int substr(char dst[], char src[],int start, int len) {} 目标是:从...
编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下:
int substr(char dst[], char src[],int start, int len)
{}
目标是:从 src 数组起始位置向后偏移 start个字符的位置开始,最多复制 
len 个非nul字符到 dst数组。在复制完毕之后,dst 数组必须以nul字节结尾。
函数的返回值是存储于 dst 数组中的字符串的长度。
 
 
 
代码实现:
 
#include <stdio.h>
#include <assert.h>
 
int substr(char dst[], char src[], int start, int len)
{
    assert(dst);
    assert(src);
    int ret = 0;
    while (start)
    {
        src++; 
        start--;
    }
    if (strlen(src) < len)
    {
        len = strlen(src);
    }
    ret = len;
    while (len)
    {
        *dst++ = *src++;
        len--;
    }
    *dst = '\0';
 
    return ret;
}
int main()
{
    char *p = "bit-tech";
    char arr[10];
    char array[10] = {0};
    int ret = substr(arr, p, 4,5);
    printf("%d\n", ret);
    printf("%s\n", arr);
    system("pause");
    return 0;
}