c语言中将一维数组放入二维数组中会自动补零吗
答案:2 悬赏:30 手机版
解决时间 2021-03-08 01:22
- 提问者网友:十年饮冰
- 2021-03-07 19:50
c语言中将一维数组放入二维数组中会自动补零吗
最佳答案
- 五星知识达人网友:酒安江南
- 2021-03-07 19:56
你是怎么把一维数组放到二维数组的,memcpy?
不会自动补零的,使用二维数组前先memset或者初始化a[x][y] = {0};
不会自动补零的,使用二维数组前先memset或者初始化a[x][y] = {0};
全部回答
- 1楼网友:猎心人
- 2021-03-07 20:58
首先说明2点: 1、excel表格本身的功能非常强大(尽管我也不是很熟悉),但它确实可以完成很多事情,就像问题中所描述的这种情况excel是一定可以做的。 2、尽管用c语言不是非常好的一个选择,不过如果熟悉c编程的话也是一种解决问题的途径,下面我假定:存有不同人的姓名的文件名为name.txt(路径在c程序原文件所在的文件夹中,如果不在的话请更改路径)。另外array[0][0]=张 要求是显然不合理的,字符处理的时候array数组一般都会选择char类型,“张”是2个字符。 下面是程序的例子: 首先说明2点: 1、excel表格本身的功能非常强大(尽管我也不是很熟悉),但它确实可以完成很多事情,就像问题中所描述的这种情况excel是一定可以做的。 2、尽管用c语言不是非常好的一个选择,不过如果熟悉c编程的话也是一种解决问题的途径,下面我假定:存有不同人的姓名的文件名为name.txt(路径在c程序原文件所在的文件夹中,如果不在的话请更改路径)。另外array[0][0]=张 要求是显然不合理的,字符处理的时候array数组一般都会选择char类型,“张”是2个字符。 下面是程序的例子: #include <stdio.h> #include <string.h> #define max_name 100 //名字的最大个数 #define n 10 //中文名字一般不超过4个汉字(如果有特例则增大该值) void process(char *str) { printf("%s\n",str); } int main() { file *fp; char array[max_name][n]; char ch; //临时读取字符使用 int index = 0; //array 的行标号,人名的索引 int name_c = 0; //array 的列标号,构成每个人名中的字符 fp = fopen("name.txt","rt"); if(null == fp) { printf("failed to open the file: name.txt.\n"); getchar(); return 1; } ch = fgetc(fp); while( ch != eof ) { if(ch != '\n') { array[index][name_c] = ch; name_c++; } else { array[index][name_c] = '\0'; index++; name_c = 0; } if(name_c > 9) { printf("name is too long and it will be deserted!\n"); name_c = 0; ch = fgetc(fp); while( ch != '\n' ) { ch = fgetc(fp); } } ch = fgetc(fp); } //上面得到了array数组,array[index]就是各个人名的字符串。 //接下来则可以对array数组进行处理,如统计重复人名等工作。 //下面仅是处理的一个示例: for(ch=0; ch<=index; ch++) { process(array[ch]); } return 0; }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯