c语言中二维字符数组

c语言中二维字符数组

ID:8976050

大小:50.00 KB

页数:5页

时间:2018-04-13

c语言中二维字符数组_第1页
c语言中二维字符数组_第2页
c语言中二维字符数组_第3页
c语言中二维字符数组_第4页
c语言中二维字符数组_第5页
资源描述:

《c语言中二维字符数组》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C语言中二维字符数组C语言中二维字符数组的定义和初始化一般来说,我们可能会希望定义一个二维字符数组并且在定义的时候就用一些字符串来初始化它。比如说:Code:1.chartestcase[30][MAX_LENGTH]= {"jo","vicent","tom","honey","gigi","lily","susan","peter","bob","ron",  2.                            "jason","henry","kiki","ken","auscar","vivia

2、n","yiyi","peace","iron","lotus"  3.                            "andy","arta","ophone","denial","pipe","wade","james","kobe","kent","angel"};  通常使用二维字符数组是为了在程序中存储一些字符串关键字。用这样的方式来初始化就最简单不过了。其中,MAX_LENGTH是所有字符串中最大的长度。当然不能忘记''了。而定义一个字符二维数组,C也提供了简洁的方式,如果我不想统计字

3、符串的长度,我还可以这样定义:Code:1.char *testcase[30] = {"jo","vicent","tom","honey","gigi","lily","susan","peter","bob","ron",  2.                            "jason","henry","kiki","ken","auscar","vivian","yiyi","peace","iron","lotus"  3.                            "and

4、y","arta","ophone","denial","pipe","wade","james","kobe","kent","angel"};  也就是说,可以不再数组定义的时候指定字符串的长度,但是注意字符串的个数是一定要指定的,像这样写char**testcase=...是不行的,不过肯定不行了,因为int*pt=3也不行,呵呵,这两个例子是一个道理啊。我觉得肯定是人都喜欢第二种初始化方法了,而且它还有一个优点,起码对喜欢用指针的同志来说是一个大优点。就是可以将这样定义的指针赋给一个二维指针,比如cha

5、r**pointer=testcase;想形式1的定义方法肯定不能这样赋值了。不过非常非常值得注意的是,上面定义的两个指针,一个一维,一个二维,他们必须在const关键字上一致,意思就是说如果定义testcase前面加了const关键字,定义pointer时也必须加上,否则就会报错:errorC2440:'initializing':cannotconvertfrom'char*[30]'to'constchar**在写这篇日志的过程中,我突然想到一个问题,就似乎利用上面的方法二初始化二维字符串数组之中,字符串

6、是如何分布的呢?因为字符串的长度是不相等的,完全由编译器来计算,那么它是会按照最长的字符串来定制字符数组的长度,还是让每一个字符串数组都按照自身的大小来占据内存,靠''来识别结尾呢?二维字符串数组的初始化-动态内存分配昨天在用FBS200指纹采集芯片采集到一个二维数组数据后,利用串口传输上来的数据是以十六进制的数据格式表示的二维矩阵,比如“FF”、“BD”、“5C”等等这样的形式,而对于一幅灰度图像,一般都是在0~255之间的数据来表示其亮度值,因此想通过二维字符串数组来对采集过来的数据进行转化显示。但在动

7、态分配一个char**str;str=newchar*[128];之后对其进行初始化时,总是出现错误,不知道如何才能很好的对其赋值,还得深入学习一下。其实对一个字符的转化很容易,但对一个字符串形式的字符来转化,而且是对一个多维数组来转化就有点吃力了。首先建立一个多维字符串数组,这里是二维的字符串数组,程序如下所示:#include"stdio.h"voidmain(){char*str1[2][2]={"FF","F9","FA","F9"};//初始化一个二维字符串数组char*str;//定义一个一维字符串

8、变量inta,b;inti,j;intresult1;for(i=0;i<2;i++){for(j=0;j<2;j++){str=str1[i][j];//对一维字符串赋值printf("%s",str);if(str[0]>='A'&&str[1]>='A'){a=int(str[0]-'A');b=int(str[1]-'A');result1=(a+10)*16+(b+10)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。