1.找出最长的字符串
#include<stdio.h>
#include<string.h>
int main()
{
int max=0,math,i;
char s1[80],s2[80];
for(i=1;i<=5;i++)
{
gets(s2);
math=strlen(s2);
if(math>max)
{
max=math;
strcpy(s1,s2);
}
}
puts(s1);
printf("%d",max);
return 0;
}
2.分类统计字符个数
#include<stdio.h> #include<string.h> int main() { char str[50]; int i,dx,xx,math,kg,qt; dx=xx=math=kg=qt=0; gets(str); for(i=0;i<strlen(str);i++) { if(str[i]>='A'&&str[i]<='Z') dx++; else if(str[i]>='a'&&str[i]<='z') xx++; else if(str[i]>='0'&&str[i]<='9') math++; else if(str[i]==' ') kg++; else qt++; } printf("大写字母%d个 小写字母%d个 数字%d个 空格%d个 其他字符%d个 ",dx,xx,math,kg,qt); return 0; }
3.学生信息管理系统
#include<stdio.h> #include<string.h> struct studys_list { char name[10]; char xh[20]; int math,english,china; double average; }; int count=0; void new_study(struct studys_list studys[]); void print_study(struct studys_list studys[]); void search_study(struct studys_list studys[],char *name); void search_study(struct studys_list studys[],char *name); int main() { int ch; char name[10]; struct studys_list studys[50]; do { printf(" ***学生信息管理系统*** "); printf(" 1.输入学生信息 "); printf(" 2.输出学生信息 "); printf(" 3.按姓名查找学生本信息 "); printf(" 0:退出 "); scanf("%d",&ch); switch(ch) { case 1:new_study(studys);break; case 2:print_study(studys);break; case 3:printf("请输入学生姓名 "); scanf("%s",name); search_study(studys,name); break; case 0:break; } }while(ch!=0); return 0; } void new_study(struct studys_list studys[]) { struct studys_list s; if(count==50) { printf("已达上限!"); return; } printf("请输入学生姓名"); scanf("%s", s.name); printf("请输入学生学号"); scanf("%s",s.xh); printf("请输入数学成绩"); scanf("%d",&s.math); printf("请输入英语成绩"); scanf("%d",&s.english); printf("请输入语文成绩"); scanf("%d",&s.china); s.average=(s.math+s.english+s.china)/3; studys[count]=s; count++; } void print_study(struct studys_list studys[]) { printf("学生基本信息为: "); int i; for(i=0;i<count;i++) { printf("%s %.1lf %s ",studys[i].name,studys[i].average,studys[i].xh); printf("%d %d %d ",studys[i].math,studys[i].china,studys[i].english); } } void search_study(struct studys_list studys[],char *name) { int i,flag=0; if(count==0){ printf("无学生信息 "); return; } for(i=0;i<count;i++) if(strcmp(name,studys[i].name)==0){ flag=1; break; } if(flag){ printf("姓名:%s ",studys[i].name); printf("语文成绩:%d ",studys[i].china); printf("数学成绩:%d ",studys[i].math); printf("英语成绩:%d ",studys[i].english); printf("平均成绩:%.2lf ",studys[i].average); printf("学号:%s ",studys[i].xh); } }
知识点
1.puts()gets()的用法
2.strcpy(s1,s2)把2付给1
strcat(s1,s2)2与1合并付给1
strcmp(s1,s2)1与2比大小
strcpy()计算字符串长度
遇到的问题与解决方法
在编写第二个的时候没有找到方向,于是请求了同学的帮助
在编写第三个的时候遇到了很多问题,一部分经过看书解决,一部分经过自己的多次试验,一部分请求老师的帮助,结果发现了是我&符号出现了问题,我并没有很好地理解&的意义