字符串相关问题,c语言

img

为什么第一个要用char * namedb
而第二个要用 char name[100];
strcmp的使用方法不是strcmp(const char *s1,const char * s2);
两个不是都是应该是指针类型的吗

第一个是字符串指针数组,每个指针都指向一个字符串,第二个是字符数组。这个程序主要先获取你输入的字符串,进入for循环,并将你输出的字符串逐一和第一个字符串指针数组里的所有值进行比对,如果相同就打印:欢迎你,你输出的字符串,否则就打印没有找到名字。

第一个是字符串指针数组,即数组中的每个元素都是一个字符串指针
第二个是字符数组,即数组中的每个元素都是字符

char *namedb[]是指针数组,数组里面所存放的都是指针,指针指向对应的字符串,
而char name[100];是字符串。
这个程序的含义是,namedb[]中存放的是数据。计算机从键盘得到一串数据,和指针数组中的数据进行对比,一致的话会通过认证。
字符数组,name,数组名就相当于一个指针,指向这个数组的第一个字符的位置。而namedb【i】就是一个指针。