自己实现substr函数——C语言

来源:互联网 发布:mac git图形化工具 编辑:程序博客网 时间:2024/05/19 12:37

#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}




原创粉丝点击