C语言:编写从一个字符串中提取一个子字符串的函数my_substr

原创 2016年05月30日 17:13:32
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

char* my_substr(char* dest, const char* src, size_t pos, size_t destlen)
{
    assert(src);
    size_t srclen = strlen(src);
    assert(pos <= srclen);
    char* start = src;
    char* p = dest;
    
    while (pos)
    {
        start++;
        pos--;
    }
    
    if (destlen > srclen)  //当截取的部分字符串长度小于destlen时,真正字符串长度就是destlen  
    {
        destlen = srclen;
    }
    
    while (destlen)
    {
        *dest++ = *start++; 
        destlen--;
    }
    
    *dest = '\0';    //最后要用\0结束字符串标志
    return p;
}

int main()
{
    char arr1[] = "hello world!";
    char arr2[10];
    char* ret = my_substr(arr2, arr1, 2, 5);
    printf("%s", ret);
    system("pause");
    return 0;
}

注意两点:

(1)要将dest首地址保存起来,最后再返回其地址!!!

保存:

char* p = dest;

返回:

 return p;

否则,若不保存地址,则dest一直在变化,最后变成了'\0',则不输出


(2)src原串不发生变化,则可用const修饰。防止其发生改变!


C语言 编写一个函数,它从一个字符串中提取一个子字符串

编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: int substr(char dst[], char src[],intstart, int len)  { } 目标:      ...
  • ZhongQi0808
  • ZhongQi0808
  • 2015年03月22日 15:46
  • 4639

C语言实现 从一个字符串中提取一个子字符串

例如: 编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: int substr(char dst[], char src[],int start, int len) {} 目标是:从sr...
  • ret_skd
  • ret_skd
  • 2015年03月21日 22:22
  • 2310

【C语言】用一个函数,从一个字符串中提取一个子字符串。

C语言
  • SuLiJuan66
  • SuLiJuan66
  • 2015年04月11日 19:07
  • 1767

【c语言】编写一个函数,它从一个字符串中提取一个子字符串

/*编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: int substr(char dst[], char src[],int start, int len) {} 目标是:从src...
  • zhaoyaqian552
  • zhaoyaqian552
  • 2015年03月24日 18:54
  • 440

C语言,从字符串中提取一个字符串,int substr(char dst[], char src[],int start,int len)目标是:从src数组的起始位置开始向后偏移star

方法一:define _CRT_SECURE_NO_WARNINGS 1include include includedefine _CRT_SECURE_NO_WARNINGSinclude inc...
  • Y1730008223CONG
  • Y1730008223CONG
  • 2016年10月26日 18:24
  • 344

用C语言编写函数计算子字符串substr在主字符串mainstr中的索引值

在大小写敏感的前提下,用C语言编写函数计算子字符串substr在主字符串mainstr中的索引值。 如果substr完全包含在mainstr中,请计算出索引值。否则,返回-1. 具体代码如下: f...
  • yang_hui1986527
  • yang_hui1986527
  • 2012年03月05日 19:50
  • 1304

c用c语言编写一个函数,连接两个字符串

  • 2010年01月03日 11:02
  • 7KB
  • 下载

编写一个函数,它从一个字符串中提取一个子字符串

函数原型如下:int substr(char dst[], char src[],int start, int len){} 目标是:从src数组起始位置向后偏移start个字符的位置开始,最多复制l...
  • u013265552
  • u013265552
  • 2015年03月22日 16:16
  • 286

【c语言】编写一个函数计算字符串长度

方法一:数组方式 代码如下: #include #include int my_strlen(char const *str) { int count=0; assert(str); //断言,...
  • i_fcy
  • i_fcy
  • 2015年05月21日 18:44
  • 2816

【C语言】为下面的函数原型编写函数定义: int ascii_to_integer(char *str); 这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。

/*为下面的函数原型编写函数定义:int ascii_to_integer(char *str);这个字符串参数必须包含一个或者多个数字,函数应该把这些数字字符转换为整数并返回这个整数。如果字符串参数...
  • doudouwa1234
  • doudouwa1234
  • 2015年04月02日 12:19
  • 855
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言:编写从一个字符串中提取一个子字符串的函数my_substr
举报原因:
原因补充:

(最多只允许输入30个字)