C语言中用数组储存中文词语
时间: 2024-11-23 20:19:24 浏览: 29
在C语言中,如果需要存储中文词语,通常会使用字符数组(char array),因为中文字符属于Unicode编码范围,每个字符占用两个字节(即UTF-16编码)。以下是一个简单的例子:
```c
#include <stdio.h>
#include <wchar.h> // 引入宽字符头文件
#define MAX_WORDS 10 // 定义最大词数
#define CHARS_PER_WORD 2 // 每个中文词占用的字符数(这里假设UTF-16)
// 存储中文词语的结构体
typedef struct {
wchar_t* words; // 宽字符数组用于存放中文词语
int num_words; // 当前存储的词语数量
} ChineseWords;
ChineseWords chinese_array[MAX_WORDS]; // 数组实例
void add_word(const wchar_t* word) {
if (chinese_array[num_words].num_words + CHARS_PER_WORD > MAX_WORDS * sizeof(wchar_t)) {
printf("数组已满,无法添加更多词语。\n");
return;
}
chinese_array[num_words].words[chinese_array[num_words].num_words] = L'\0'; // 初始化新位置
wcscat(chinese_array[num_words].words, word); // 连接词语到数组
chinese_array[num_words].num_words += CHARS_PER_WORD;
}
int main() {
add_word(L"你好"); // 添加一个词
add_word(L"世界"); // 另外一个词
for (int i = 0; i < chinese_array[num_words].num_words / CHARS_PER_WORD; i++) { // 遍历并打印词语
wprintf(L"%s\n", chinese_array[i].words);
}
return 0;
}
```
在这个示例中,我们使用`wchar_t`来处理宽字符,并通过`wcscat`函数连接字符串。注意,数组大小需要足够大,以便存储所有可能的中文词语,且需要处理数组溢出的情况。
阅读全文