2010-05-27 3 views

ответ

6

что-то подобное может помочь

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

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

EDIT: стандарт Nothing source

+0

http://www.linuxquestions.org/questions/programming-9/extract -substring-из-строки-в-C-432620 / –

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