C语言字符串如何限制只能输入汉字
时间: 2023-07-26 20:28:10 浏览: 211
c语言判断字符串是否回文
在 C 语言中,要限制只能输入汉字,可以使用字符编码来判断输入的字符是否为汉字。常见的汉字编码有 GB2312、GBK、UTF-8 等。其中,UTF-8 是目前比较常用的一种编码方式。
下面是一个简单的示例代码,用于限制只能输入汉字:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, ""); // 设置本地化环境,用于支持中文字符
char str[100];
printf("请输入汉字:");
fgets(str, sizeof(str), stdin); // 使用 fgets() 函数读取用户输入的字符串
int len = strlen(str);
for (int i = 0; i < len; i += 3) {
unsigned char c1 = str[i];
unsigned char c2 = str[i + 1];
unsigned char c3 = str[i + 2];
// 如果不是汉字,则输出错误信息并退出程序
if ((c1 < 0x81 || c1 > 0xFE) || (c2 < 0x40 || c2 > 0xFE) || (c3 < 0x40 || c3 > 0xFE)) {
printf("输入的不是汉字!\n");
exit(1);
}
}
printf("输入的是汉字:%s", str);
return 0;
}
```
这个示例代码中使用了 fgets() 函数读取用户输入的字符串,并使用字符串长度和字符编码来判断输入的字符是否为汉字。如果输入的字符不是汉字,则输出错误信息并退出程序。
阅读全文