2010-05-27 221 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');