自己实现substr函数——C语言
2013-11-21 18:57
323 查看
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> char* mysubstr(char* srcstr, int offset, int length) { assert(length > 0); assert(srcstr != NULL); int total_length = strlen(srcstr);//首先获取srcstr的长度 //判断srcstr的长度减去需要截取的substr开始位置之后,剩下的长度 //是否大于指定的长度length,如果大于,就可以取长度为length的子串 //否则就把从开始位置剩下的字符串全部返回。 int real_length = ((total_length - offset) >= length ? length : (total_length - offset)) + 1; char *tmp; if (NULL == (tmp=(char*) malloc(real_length * sizeof(char)))) { printf("Memory overflow . \n"); exit(0); } strncpy(tmp, srcstr+offset, real_length - 1); tmp[real_length - 1] = '\0'; return tmp; } int main() { char srcstr[] = "this is a test string!"; char* tmp = mysubstr(srcstr, 8, 8); printf("TEST: result = %s\n", tmp); free(tmp); return 0 }
相关文章推荐
- 自己实现的C语言string.h 头文件的字符串函数与几个内存操作函数
- c语言:实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
- C语言小函数——atol(自己实现)
- 自己编写c语言实现的字符串操作函数
- c语言:实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定
- malloc函数详解之自己用C语言写出实现malloc()和free()功能的函数
- 自己动手写字符串库函数 二(C语言实现)
- 用c语言实现一个自己的atof()函数
- C语言字符切割函数的实现——不需要自己指定分配多少个字符串分组
- substr 和 find函数实现自己的字符串分割函数(以指定分隔符分割字符串,分隔符可为字符串)
- C语言测试。自己实现scandir 函数
- C语言strtok()函数:分割字符串(自己实现strtok)
- C语言下的创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- C语言:实现一个函数,打印乘法口诀表,如:输入9,输出9*9口诀表
- C语言:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中
- C语言qsort()函数的实现
- C语言-函数实现模块化设计-函数的递归调用
- C语言10的n次方pow函数不好用,自己写一个简单的
- C语言可变参数函数实现原理
- 实现自己的printf函数(转载)