2010-05-27 212 views

回答

6

这样的事情可能会帮助

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

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

编辑source

+0

http://www.linuxquestions.org/questions/programming-9/extract -substring-从串式-C-432620 / – 2010-05-27 04:20:30

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');