如何给数组赋值中文
这个是0到6分别表示星期一到星期日的代码,为什么错,如何给数组赋值中文#include<stdio.h>charxq(m){chara[7][6]={{"星期日"},{"...
这个是0到6分别表示星期一到星期日的代码,为什么错,如何给数组赋值中文
#include<stdio.h>
char xq(m)
{
char a[7][6]={{"星期日"},{"星期一"},{"星期二"},{"星期三"},{"星期四"},{"星期五"},{"星期六"}};//据说中文是两个字节的所以定义的二维数组为7行6列的
return a[m][6];
}
int main()
{
int a;
scanf("%d",&a);
printf("%c",xq(a));
} 展开
#include<stdio.h>
char xq(m)
{
char a[7][6]={{"星期日"},{"星期一"},{"星期二"},{"星期三"},{"星期四"},{"星期五"},{"星期六"}};//据说中文是两个字节的所以定义的二维数组为7行6列的
return a[m][6];
}
int main()
{
int a;
scanf("%d",&a);
printf("%c",xq(a));
} 展开
5个回答
展开全部
和普通数组差不多。
一维数组: char a[] = "你好";
二维数组: char b[3][] = { "你好", "我好", "大家好" };
三维数组: char c[2][3][] = { {"一", "二", "三"}, {"四", "五", "六"}, {"七","八","九"} };
-----
另外,给你看个例子。
对于GBK编码码:
char *s = "静夜思";
char a[7] = { s[0], s[1], s[2], s[3], s[4], s[5], 0 };
printf("%s\n", s); // 会输出 ‘静夜思’ 三个字。
printf ("%s\n", a); // 会输出 ‘静夜思’ 三个字。
char b[3] = { s[2], s[3], 0};
printf ("%s\n", b); // 会输出 ‘夜’ 一字。
一维数组: char a[] = "你好";
二维数组: char b[3][] = { "你好", "我好", "大家好" };
三维数组: char c[2][3][] = { {"一", "二", "三"}, {"四", "五", "六"}, {"七","八","九"} };
-----
另外,给你看个例子。
对于GBK编码码:
char *s = "静夜思";
char a[7] = { s[0], s[1], s[2], s[3], s[4], s[5], 0 };
printf("%s\n", s); // 会输出 ‘静夜思’ 三个字。
printf ("%s\n", a); // 会输出 ‘静夜思’ 三个字。
char b[3] = { s[2], s[3], 0};
printf ("%s\n", b); // 会输出 ‘夜’ 一字。
展开全部
你定义的是字符数组,当然无法赋字符串的值,定义一个字符串的数组就可以了。如:string[][]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-29
展开全部
应该是数组越界了,每个汉字占用2个字节,再加上一个字符串结束符'\0',需要占用7个字节,
而你只定义了6个字节的长度数组放,肯定导致数组越界,会出现不可预知的异常
而你只定义了6个字节的长度数组放,肯定导致数组越界,会出现不可预知的异常
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
字符串默认最后一位存放/0作为结束标志,你这样内存越界了,应该把a[7][6]变成a[7][7]
而且你的return也不对 return a[m],返回值改为char* ,printf 修改为,printf("%s",xq(a));
而且你的return也不对 return a[m],返回值改为char* ,printf 修改为,printf("%s",xq(a));
更多追问追答
追问
还是不行
追答
#include "stdio.h"
#include "string.h"
char a[7][7] = {{"星期日"},{"星期一"},{"星期二"},{"星期三"},{"星期四"},{"星期五"},{"星期六"}};
char * xq(int m)
{
if( m 7)
m = 7;
return a[(m-1)];
}
int _tmain(int argc, _TCHAR* argv[])
{
int a;
scanf_s("%d",&a);
printf("%s",xq(a));
return 0;
}
照这个写吧,测试过了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
char a[7][6]={{"星期日"},{"星期一"},{"星期二"},{"星期三"},{"星期四"},{"星期五"},{"星期六"}};//据说中文是两个字节的所以定义的二维数组为7行6列的
char* xq(m)
{
return a[m];
}
int main()
{
int a;
scanf("%d",&a);
printf("%s",xq(a));
return 0;
}
char a[7][6]={{"星期日"},{"星期一"},{"星期二"},{"星期三"},{"星期四"},{"星期五"},{"星期六"}};//据说中文是两个字节的所以定义的二维数组为7行6列的
char* xq(m)
{
return a[m];
}
int main()
{
int a;
scanf("%d",&a);
printf("%s",xq(a));
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询