4个回答
展开全部
在 C 语言编程中,关于给某个具体变量赋值中文的问题,根据我的编程经验,你可以这样编程不容易出错,见如下程序代码:
#include <string.h>
#include <stdio.h>
#define MAX 50 /* 定义一个宏 MAX,该宏定义可以根据需要自行进行修改 */
void main( )
{
unsigned char my_hanzi[MAX] ; /* 在这里必须要注意:由于所需要处理的信息是汉字信息,但是汉字信息的 ASCII 码的最高位为 1,故在这里必须要将变量定义成无符号字符型数组:unsigned char my_hanzi[MAX] */
gets(my_hanzi) ; /* 输入一个汉字字符串,但是最大长度不能够超过 MAX 个字符,否则会出错 */
puts(my_hanzi) ; /* 输出刚刚在上面从键盘上输入的汉字字符串 */
strcpy(my_hanzi, "这是一个汉字字符串的应用" ) ; /* 将一个新的汉字字符串复制给变量 my_hanzi */
puts(my_hanzi) ; /* 再输出刚刚复制的新的汉字字符串 */
}
至于说其它的对汉字信息的各种处理,均可以参考该程序。
#include <string.h>
#include <stdio.h>
#define MAX 50 /* 定义一个宏 MAX,该宏定义可以根据需要自行进行修改 */
void main( )
{
unsigned char my_hanzi[MAX] ; /* 在这里必须要注意:由于所需要处理的信息是汉字信息,但是汉字信息的 ASCII 码的最高位为 1,故在这里必须要将变量定义成无符号字符型数组:unsigned char my_hanzi[MAX] */
gets(my_hanzi) ; /* 输入一个汉字字符串,但是最大长度不能够超过 MAX 个字符,否则会出错 */
puts(my_hanzi) ; /* 输出刚刚在上面从键盘上输入的汉字字符串 */
strcpy(my_hanzi, "这是一个汉字字符串的应用" ) ; /* 将一个新的汉字字符串复制给变量 my_hanzi */
puts(my_hanzi) ; /* 再输出刚刚复制的新的汉字字符串 */
}
至于说其它的对汉字信息的各种处理,均可以参考该程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你所希望赋值的其实并不是中文,而是表示成中文的“星座”。星座只有十二个,而中文字有成千上万个,所以正确的做法应该是用 enum。但是enum之能使用英文标识符,所以你接下来可以选择拼音,或者英文,或者两者皆有的方式。
enum {
// 英文
Aries = 0,
Taurus,
Gemini,
Cancer,
Leo,
Virgo,
Libra,
Scorpio,
Sagittarius,
Capricorn,
Aquarius,
Pisces,
// 拼音
Baiyangzuo = 0,
Jinniuzuo,
Shuangzizuo,
Juxiezuo,
Shizizuo,
Chunvzuo,
Tianpingzuo,
Tianxiezuo,
Renmazuo,
Moxiezuo,
Shuipingzuo,
Shuangyuzuo,
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个汉字占用的内存至少为2字节,因此对多字节字符集和宽字符集来说,表示汉字的方式也略有不同:
多字节字符集的基本数据类型是char,占1字节,因此char无法表示一个汉字,只能用字符串来表示:
char a = '你'; //错误,一个汉字至少占2字节
char b[] = "好"; //正确
宽字符集的基本数据类型是wchar_t,通常占2字节,采用Unicode编码,可以表示汉字:
wchar_t a = L'你'; //正确
wchar_t b[] = L"好"; //正确
此外,采用多字节字符集表示汉字时,还需要注意源代码文件本身的编码是否和系统默认的字符集一致,否则可能导致乱码。例如在Windows下,源代码文件应该用GB-2312字符集编码。如果用UTF-8编码,就可能导致编译或运行时的乱码问题。
更多追问追答
追问
就是像图片里那种要怎么做,求教
追答
请分清楚字符串和标识符的区别。字符串可以包含任何字符,而标识符的名称必须遵循C语言语法规定。标识符不可以使用中文。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询