C - 字符串中的字符范围

时间:2010-05-27 04:17:24

标签: c string text

是否有一个函数可以在文本字符串中获取一系列字符,还是需要自己编写?

2 个答案:

答案 0 :(得分:6)

这样的事情可能会有所帮助

#include <string.h>
#include <stdlib.h>

main(){
  const char* from = "12345678";
  char *to = (char*) malloc(6);
  strncpy(to, from+2, 5);
}

编辑source

答案 1 :(得分:0)

没什么标准,但写起来非常容易:

char *char_range(char begin, char end)
{
    size_t len = end - begin + 1;
    char *arr = malloc(len + 1);
    if (arr)
    {
        size_t i;
        for (i = 0; i < len; ++i)
            arr[i] = (char)(begin + i);
        arr[len] = '\0';
    }
    return arr;
}

因为这会根据字符的序数值生成范围,所以从技术上讲,这是特定于平台的。也就是说,由于ASCII和Unicode几乎是现代大多数现代操作系统的通用语言,因此您可以调用以下内容:

char *lower_case = char_range('a', 'z');
char *numbers = char_range('0', '9');