比如
我想做一个,输入姓名就显示相关信息的程序
就是从键盘输入一个姓名,比如Maiiho这个名字,就显示他的相关数据
这是我写到,不能运行
#include <stdio.h>
struct stu
{
int num;
char name[50];
int age;
char sex;
float scr;
char addr[50];
};
struct stu stu1 ={1,"Maiiho",18,'B',85.0,"oosaka"};
main()
{
char n[50];
printf("Please input your name!");
scanf("%c",n);
if(n="Maiiho")
printf("ID:%d\nname:%s\nage:%d\nsex:%c\nscr:%f\naddress:%s",stu1.num,stu1.name,stu1.sex,stu1.scr,stu1.addr");
else
printf("X");
getch();
}
1.字符串用字符数组保存。
2.在读取字符串时,要用 %s 格式控制符,而不是 %c
3.字符串的比较不能用相等操作符(==),而要用strcmp()函数(需要包含string.h头文件)。
例如你的程序中要比较n和"Maiiho"是否相等,应该用以下表达式:
if (!strcmp(n,"Maiiho")) /*如果要比较的两个字符串相等,strcmp()函数返回0,否则返回非0值*/
2.在读取字符串时,要用 %s 格式控制符,而不是 %c
3.字符串的比较不能用相等操作符(==),而要用strcmp()函数(需要包含string.h头文件)。
例如你的程序中要比较n和"Maiiho"是否相等,应该用以下表达式:
if (!strcmp(n,"Maiiho")) /*如果要比较的两个字符串相等,strcmp()函数返回0,否则返回非0值*/
参考资料:刚才不是已经提问过了吗?重复提问是会被删除的。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2008-05-20
1.字符串用字符数组保存。
2.在读取字符串时,要用 %s 格式控制符,而不是 %c
3.字符串的比较不能用相等操作符(==),而要用strcmp()函数。
你的程序修改如下:
#include <stdio.h>
#include <string.h>
struct stu
{
int num;
char name[50];
int age;
char sex;
float scr;
char addr[50];
};
struct stu stu1 ={1,"Maiiho",18,'B',85.0,"oosaka"};
main()
{
char n[50];
printf("Please input your name!");
scanf("%s",n);
if(strcmp(n,stu1.name)==0)
printf("ID:%d\nname:%s\nage:%d\nsex:%c\nscr:%f\naddress:%s",stu1.num,stu1.name,stu1.sex,stu1.scr,stu1.addr);
else
printf("X");
getchar();
}
2.在读取字符串时,要用 %s 格式控制符,而不是 %c
3.字符串的比较不能用相等操作符(==),而要用strcmp()函数。
你的程序修改如下:
#include <stdio.h>
#include <string.h>
struct stu
{
int num;
char name[50];
int age;
char sex;
float scr;
char addr[50];
};
struct stu stu1 ={1,"Maiiho",18,'B',85.0,"oosaka"};
main()
{
char n[50];
printf("Please input your name!");
scanf("%s",n);
if(strcmp(n,stu1.name)==0)
printf("ID:%d\nname:%s\nage:%d\nsex:%c\nscr:%f\naddress:%s",stu1.num,stu1.name,stu1.sex,stu1.scr,stu1.addr);
else
printf("X");
getchar();
}