|
发表于 2021-9-13 12:31:36
|
显示全部楼层
本楼为最佳答案
本帖最后由 Max472 于 2021-9-13 17:12 编辑
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 1024
- int main()
- {
- char sno_group[4][MAX][5]{
- {"", },
- {"", },
- {"", },
- {"", },
- }; // 分为 4 段,所以数组为 4 行,因为有很多学生,所以列数设置的大一点,最后的 [5]表示字符串,分离出来的数据段就是存在这个 [5] 里边
- char sno[14]; // 学号有13位,用字符串保存的话,输入的数据最后需要加一个 "\0" 表示到此结束,所以该数组长度设置为14
- int i, j;
- int row, line;
- char temp[5] = { "" };
- i = j = 0;
- row = i;
- line = j;
- do {
- scanf("%s", sno);
- getchar();
- if ( strcmp("end", sno) )
- {
- row = i;
-
- strncpy(sno_group[row++][line], sno, 4);
- temp[4] = '\0';
- //strcpy(sno_group[row++][line], temp);
-
- strncpy(sno_group[row++][line], sno+4, 4);
- //temp[4] = '\0';
- //strcpy(sno_group[row++][line], temp);
- strncpy(sno_group[row++][line], sno+8, 3);
- //temp[3] = '\0';
- //strcpy(sno_group[row++][line], temp);
- strncpy(sno_group[row++][line], sno+11, 2);
- //temp[2] = '\0';
- //strcpy(sno_group[row++][line], temp);
- line++; // 换一列
- }
- } while ( strcmp("end", sno) );
-
- for (j = 0; j < line; j++)
- {
- for (i = 0; i < row; i++)
- {
- printf("%s ", sno_group[i][j]);
- }
- putchar('\n');
- }
-
- return 0;
- }
复制代码 |
-
|