字符指针数组的拓展用法(二维字符数组)
输入一个学生姓名,在含有4个学生的名单中查找该学生是否存在,并输出查找结论;
#include <stdio.h>
#include <string.h>
int main()
{
char *name[4]={"Tom","Smith","Ellen","Fox"};
char sn[20];
int i;
scanf("%s",sn);
for(i=0;i<4;i++)
{
if(strcmp(sn,name[i])==0)
break;
}
if(i<4) printf("%s is here\n",sn);
else printf("Sorry,Not found");
return 0;
}
将上题改变一下,如果四个学生的姓名是需要输入的呢?程序又该怎么变呢?
字符指针数组必须要初定义,不能输入?
#include <stdio.h>
#include <string.h>
int main()
{
int n;
int i;
char s[81][81],s1[81];//把名字定义成二维数组
scanf("%d",&n);
char *name[n];
for(i=0;i<n;i++)
{
scanf("%s",s[i]);
name[i]=s[i];//name[i]指向行(一个名字)
}
scanf("%s",s1);
for(i=0;i<n;i++)
{
if(strcmp(s1,name[i])==0)
break;
}
if(i<n) printf("YES");
else printf("NO");
return 0;
}