获取c中的子字符串

时间:2011-07-17 20:40:49

标签: c

我已经有了一个函数来获取字符串

的子字符串
void subString(char* buffer, char* str, int start, int length)
{
    int i, x = 0;
    int end=start+length;
    for(i = start ; i <= end; i++)
        buffer[x++] = str[i];
    buffer[x] = '\0';

    //return temp;
}

新字符串存储在缓冲区

但我更喜欢喜欢

的功能
char * subString(char* str, int start, int length)
{

    //.......

}

它将自动返回已分配内存的字符串指针。

欢迎任何评论

2 个答案:

答案 0 :(得分:3)

将malloc添加到新功能中并将其余部分保持不变会有什么问题?

#include<stdlib.h>
char * subString(char* str, int start, int length) {
    char *newString = (char *)malloc(length * sizeof(char));
    int i, x = 0;
    int end=start+length;
    for(i = start ; i <= end; i++)
        newString[x++] = str[i];
    newString[x] = '\0';
    return newString;
}

答案 1 :(得分:1)

由于您将字符串视为简单字符数组,为什么不简单地使用普通的strncpy

strncpy(dest, str+offset, len);