0

我一直致力于在 C 中创建字符串 (char*) 操作函数,而我最新的一个是类似 PHP 的子字符串函数。我发帖是为了让其他人可以从中受益,如果有任何改进功能的建议,我将不胜感激。

4

1 回答 1

0

这是 C 语言中的 PHP 子字符串函数。

char *substr(char *str, int start, int num)
{
    //find string length
    int len = sj_strlen(str);

    char *result;

    //Return "" if start is longer than str
    if(start > len || (start*-1) > len)
    {
        result = malloc(1);
        *result = '\0';
        return result;
    }

    //Setting pointer to appropriate position
    if(start >= 0)
    {
        str += start;
    }
    else
    {
        str += (len+start);
    }

    //Allocate space for returned substring
    result = malloc(num+1);
    char *ptr = result;

    //Adding characters to the result
    while(num > 0 && *str)
    {
        *ptr++ = *str++;
        num--;
    }

    //Terminating character
    *ptr = '\0';

    return result;
}

int main()
{
    char *str = "Hello, world!";
    printf("%s\n",substr(str,-10,2)); //outputs lo
   printf("%s",substr(str,7,5)); //outputs world
}
于 2013-10-10T03:24:10.103 回答