
正文
c语言char数组赋值汉字6,c语言char 数组
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中怎样给一个变量赋值为中文
1、由于一个中文占2个字节,所以,可以用字符数组或是指向字符的指针。
2、可以通过给字符数组赋值来解决。就是变量b需要定义为字符数组。例如:include stdio.hint main(){char b[]=汉字;printf(%s,b);return 0;}//运行结果:C语言中不存在你图片中写的这种语法,既然学C语言,就应该按照C语言要求的格式来进行书写,不能自己强行发明创造。
3、。如果你输入的汉字时多字节(ANSI),那么它占用两个字节,需要用short类型。2。如果你输入的汉字时宽字节(UNICODE),那么它也是占用连个字节,使用short就可以了。3。如果你输入的汉字是多字节(UTF8),那么很不幸,它可能是1~3字节,所以最好使用long类型。
4、不行,因为char是C语言中可容纳单个字符的一种基本数据类型;别说汉字了,就是两个字母也不行。可以使用 字符数组(char a[ ]=“汉字”;) 或者 字符串变量(string a=“汉字;) 来存蓄汉字。
5、定义一个字符串变量,这个变量的值中就可以输入汉字了。
相关问答
Q1: C语言可以初始字符变量赋值为汉字吗
不行,因为char是C语言中可容纳单个字符的一种基本数据类型;别说汉字了,就是两个字母也不行。可以使用 字符数组(char a[ ]=“汉字”;) 或者 字符串变量(string a=“汉字;) 来存蓄汉字。
可以通过给字符数组赋值来解决。就是变量b需要定义为字符数组。例如:include stdio.hint main(){char b[]=汉字;printf(%s,b);return 0;}//运行结果:C语言中不存在你图片中写的这种语法,既然学C语言,就应该按照C语言要求的格式来进行书写,不能自己强行发明创造。
由于一个中文占2个字节,所以,可以用字符数组或是指向字符的指针。
下标是一个数字,一般都是这样的。char 在c语言中,也算一个数吧,比如,你会发现字符a和其对应的ascii码98(?),所以这样子用是可以的。不过,切记,char的范围,它在-128~128之间,如果,没有使用好,比如ch++的,导致溢出,那可是会一直循环下去的。
那么它占用两个字节,需要用short类型。2。如果你输入的汉字时宽字节(UNICODE),那么它也是占用连个字节,使用short就可以了。3。如果你输入的汉字是多字节(UTF8),那么很不幸,它可能是1~3字节,所以最好使用long类型。char - 1字节 short - 2字节 long - 4字节 贴出你的代码,再来说事。
定义一个字符串变量,这个变量的值中就可以输入汉字了。
Q2: 如何给数组赋值中文
s.a = abcdef ; //给结构体变量 s 赋值为 abcdef 。如果是想自己输入的话:gets( s.a ) ; 或者 scanf( %s , s,a ) ; //因为是数组,所以输入时候要记住的是 s.a前面是不加地址符&的。希望你全明白了,O(∩_∩)O~呵呵。
可以通过给字符数组赋值来解决。就是变量b需要定义为字符数组。例如:include stdio.hint main(){char b[]=汉字;printf(%s,b);return 0;}//运行结果:C语言中不存在你图片中写的这种语法,既然学C语言,就应该按照C语言要求的格式来进行书写,不能自己强行发明创造。
给数组赋初值的方法:直接初始化:int arr[3]={1,2,3};遍历访问初始化:for(i = 0;i 3;i++) arr[i]=i;内存操作函数:memset(arr,3,abs);//abs为另一个已知的数组。字符串赋值函数,仅限于char型数组:strcpy(arr,abs) ;abs为一字符串或者char型数组。
Q3: 定义一个长度为6的char型数组。初始化为{‘我’,‘爱’,‘你...
C语言允许用字符串的方式对数组作初始化赋值。例如:static char c[]={c, ,p,r,o,g,r,a,m}; 可写为:static char c[]={C program}; 或去掉{}写为:static char c[]=C program;当对全体元素赋初值时也可以省去长度说明。
答案是D,a数组比b数组长度长 原因:a数组的长度是6,b数组的长度是7。在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以\0作为串的结束符。
char n[]={a,b,c,d,e,f};这个答案是对了。不用加7。
Q4: c语言结构体中的一个char数组怎么赋值?
(1)用字符常量逐个初始化数组。例如:char a[8]={i,l,o,v,e,y,o,u};把8个字符依次分别赋给c[0]~c[7]这8个元素。如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。
intmain(void){ structstudentsbao={};printf(%d,%s\n,bao.id,bao.name);//输出是4224528,空(应该是null)//structstudentsbao={3,123};可以。
数组不能整体赋值,需要逐个元素赋值,但是如果这个数组是一个结构体的成员,可以通过结构体之间的直接赋值间接达到数组整体赋值的效果,即:tmark=tmark;//非法,数组不能直接整体赋值。t1=t2;//合法,在此之后,tmark数组将被整体复制到tmark数组。
结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存。
结构体嵌套,赋初值,大括号嵌套就可以了。问题是你代码写错了。你定义的old1不是结构类型,而是结构变量。在shuju中成员要写struct old 变量名;不能写struct old1。
可以将一个结构体变量的值赋给另一个具有相同结构的结构体变量。如student1和student2都是student类型的变量,可以这样赋值:student1= student2;假设申明了两个成员列表完全一样的两个结构体,编译器会当作两个完全不同的类型,即使他们的成员列表是一样的,令两个结构体的变量间赋值,则是非法的。
Q5: C语言里如何给结构体成员(一个数组)赋汉字值?
(1)用字符常量逐个初始化数组。例如:char a[8]={i,l,o,v,e,y,o,u};把8个字符依次分别赋给c[0]~c[7]这8个元素。如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。
C语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。
按字符赋值。如结构体变量为a, 成员为字符数组s[10]; 那么可以 for(i = 0; i 10; i ++)a.s[i] = xxx;xxx可以是任意字符。比如getchar(),即从终端读取。2 用strcpy赋值。如 strcpy(a.s, test);就是将字符数组赋值为test。3 用memcpy赋值。
一维数组: char a[] = 你好;二维数组: char b[3][] = { 你好, 我好, 大家好 };三维数组: char c[2][3][] = { {一, 二, 三}, {四, 五, 六}, {七,八,九} };--- 另外,给你看个例子。
结构体数组指针作为函数参数,通过数组的首地址与偏移量对结构体数组进行scanf的赋值,在函数中通过指针间接访问到其指向的内存。
关于c语言char数组赋值汉字6和c语言char 数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








