C language string type definition (two-dimensional character array simulates continuous storage of multiple strings) (take Xiaofan as an example)

After dev-Cpp inspection

#define _CRT_SECURE_NO_WARNINGS
/* 老师让小凡来完成点名,让小凡在早自习的时候就点好名。
 老师给了小凡名单,小凡只要照着名单点名就好了是不是很简单啊。

输入
输入有多组数据,直到文件结束。

每组测试数据有三行,第一行为两个整数m, n(50 >= m >= n)。

第二行有m个名字,名字之间用空格隔开,是小凡班上同学的名单。
后面有n个名字是来上课的同学。(名字间用空格隔开。名字的长度不超过20个字符。)

输出
按照第一行的名单,每个人对应输出是否到了。
到的人输出Yes,没到的人输出No。

样例输入
3 2
Bob Marry Jam
Bob Jam
2 2
Limeme Lintianzhi
Limeme Lintianzhi
样例输出
Yes
No
Yes

Yes
Yes
 */

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
// // 拷贝到平台的时候把my_fuction_lib.h注释掉.
//#include "my_fuction_lib.h"

//在此下方插入自定义函数对的声明:

//主函数main
/*注意,再定义新类型时,strings[xx][xx]和string(*)[xx]=string[][xx]不同,后者存储大小未知*/
typedef  char strings[50][100];

int main() {
    
    
	int n, m, i, j;
	///*用字符数组模拟字符串类型
	//用二维的字符数组类存储多个字符串*/
	//char Roll[50][50];//roll 名单/打滚
	//char Roll_call[50][50];//存储点到的同学的名字的容器
	strings Roll, Roll_call;

	/*连续读入两个数,知道各组测试输入都结束位置eof
	应当先设计如何读入一组完整的输入(一组输入可能包含各种格式)
	然后设计一个循环类不断读入新数据*/
	while (scanf("%d%d", &m, &n) != EOF) {
    
    
		// for(int i = 0;i<50;i++)
		// {
    
    
		//     if(scanf("%s",Roll[i]) == EOF)
		//         break;
		// }

		/*
		//既然不能只依靠scanf_s()来实现跳出该for,那就再for里的判断条件直接在读取条数上做个限制.
		//当然我起初的想法是想通过读入函数直接就达到结束读入的目的(幸运的是这个题提前知道了m,n(各部分会读入名字字符串的数目))
		*/
		/*//读够m个了之后直接跳出循环*/
		for (i = 0; i < m; i++)

			/*读入格式控制模式:%s;由于Roll是二维数组,所以Roll[i]就是第i各字符串的首地址*/
			scanf("%s", Roll + i, 100);

		for (i = 0; i < n; i++)

			scanf("%s", Roll_call + i, 100);

		/*本问题需要用一个二重循环来遍历判断
		根据花名册来循环*/
		for (i = 0; i < m; i++) {
    
    

			/*为了确定被点到名的同学是否来了,需要对现场的所有学上进行一次遍历判断*/
			for (j = 0; j < n; j++) {
    
    

				if (!strcmp(Roll[i], Roll_call[j])) {
    
    
					printf("Yes\n");
					/*如果找到了的话,就没必要再找啦*/
					break;
				}
			}

			/*如果找遍了所有的在场学生都没有找到,那么认定该同学缺勤(找遍了的判断条件为j=n)*/
			if (j == n)//不加判断的话一定会输出No的.非break跳出内层for时,j++会到n
				printf("No\n");
		}
	}

	return 0;
}

Guess you like

Origin blog.csdn.net/xuchaoxin1375/article/details/114872659