在这个简单的一维数组程序中,& p和p都在使用scanf语句中的%s。它没有显示任何错误。二维数组问题
#include<stdio.h>
int main()
{
char p[5];
scanf("%s",&p);
printf("%s",p);
scanf("%s",p);
printf("%s",p);
return 0;
}
但是在二维数组中,它显示错误。为什么? 例如: 这里,masterlist
是一个二维字符数组。 这段代码为什么工作?
for(i=0;i<5;i++)
scanf("%s",&masterlist[i][0]);
为什么此代码无法正常工作?为什么编译器不显示任何错误?
for(i=0;i<5;i++)
scanf("%s",masterlist[i][0]);
实际代码:我的程序工作,我只是想知道我问上面。谢谢。
#include<string.h>
#include<stdio.h>
#define FOUND 1
#define NOTFOUND 0
int main()
{
char masterlist[6][10]={"akshay","parag","raman","srinivas","gopal","rajesh"};
int i,flag,a;
char yourname[10];
printf("Enter your Name:");
scanf("%s",yourname);
flag=NOTFOUND;
for(i=0;i<=5;i++)
{
a=strcmp(&masterlist[i][0],yourname);
if(a==0)
{
printf("Welcome,you can Enter The place\n");
flag=FOUND;
break;
}
}
if(flag==NOTFOUND)
printf("Sorry,Yoy are a trespasser\n");
return 0;
}
你是如何定义和分配你的主表? – 2014-10-03 08:37:09
您只扫描一个'char'。那你为什么写'%s'。 – 2014-10-03 08:39:01
您试图在字符中存储字符串 – 2014-10-03 08:40:31