C语言用什么贮存字符串数据?

比如
我想做一个,输入姓名就显示相关信息的程序
就是从键盘输入一个姓名,比如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值*/

参考资料:刚才不是已经提问过了吗?重复提问是会被删除的。

温馨提示:答案为网友推荐,仅供参考
第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();
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网