簡體   English   中英

C-字符串中的字符范圍

[英]C - range of characters in a string

是否有一個功能可以在文本字符串中獲取一系列字符,或者我需要自己編寫一個函數?

這樣的事情可能會有所幫助

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

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

編輯

沒有什么標准,但是非常容易編寫:

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幾乎是當今大多數現代OS的通用語言,因此可以調用以下命令:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM