【发布时间】:2016-03-18 15:49:54
【问题描述】:
我想要两个创建两个可以做到这一点的函数。所以一个函数接受一个字符,例如字符a,并返回整数97。另一个函数接受这个整数97 并返回字符a。我知道这可以通过使用这些字符的 ASCII 码来完成,但它不适用于像 é, à, ö 这样的字符。这可以使用 unicode 或其他方式完成吗?
例如:
int character_to_integer(char c) {
convert character to integer and return
}
Input: character_to_index('é');
Output: 102 (for example)
char integer_to_character(int i) {
convert integer to character and return
}
Input: integer_to_character(102);
Output: é
我想用它来做这个:有一个数组,例如int my_array[5],所有元素在开始时都设置为NULL。然后例如,索引 0、3 和 4(例如对应于 a、d 和 e)设置为 NULL 以外的其他值,然后我想循环它并根据哪些索引构建一个字符串不是NULL,像这样:
void build_string_from_array(int my_array) {
char buffer[16];
char c;
for (i = 0; i < 5; i++) {
if (my_array[i] != NULL) {
c = integer_to_character(i);
buffer[i] = c;
}
}
buffer[5] = '\0';
printf("%s\n", buffer);
}
Output: ade
注意,这只是一个例子,我知道它可能有问题,但这只是为了表达我的意思。我知道这可以用 ASCII 码完成,其中所有字符只有 1 个char,但是如何做到这一点,以便像 é 这样被视为 2 个chars 的字符也可以工作?
如果不清楚我的意思,请问我,我会详细说明。
【问题讨论】: