求助 像输入2007-1-1后怎么自动把中间的-去掉
像输入2007-01-01后怎么自动把中间的-去掉 然后存入文本文件 然后在读取文本文件的时候怎么在把-加上
还有我的这个程序为什么不能运行
求助高手解决上边两个问题
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int sort_function( const void *a, const void *b);
int i=0;
int count = 0;
struct student //日期信息结构体
{
char list[3];
char a[16];
int cj[3];
float ping;
}stu[40],k;
void add()
{
float ping=0;
char ch=65;
do //接受用户输入的日期信息
{
printf("\n\t请输入日期:"); //ex:2007-01-01
scanf("%s",&stu[i].list);
printf("\t请输入学员的姓名:");
fflush(stdin);
gets(stu[i].a);
fflush(stdin);
fflush(stdin);
printf("\t添加成功!\n\n");
printf("\t是否继续输入(Y/N):"); //询问是否继续
ch=getchar();
count++; //计数器(记录学员人数)
i++; //结构体数组下标(每添加一个自增1)
if(i> 40) //判断是否溢出,溢出则退出循环
{
printf("学员人数已经达到40人!");
break;
}
}while(ch=='Y' ? ?ch=='y');
}
void del()
{
int m,u;
char id;
printf("请输入日期:"); //开始删除数据
scanf("%s",&id);
for(m=0;m <count;m++)
{
if(strcmp(id,stu[m].list)=0) //查找要求删除日期
{
k=stu[m];
stu[m]=stu[m+1]; //删除日期信息
for(u=m+1;u <count-1;u++)
{
stu[u]=stu[u+1];
}
}
}
count--; //人员数量减少了,计数器必须自减1
printf("学员已经删除!");
}
void show()
{
int x,j,e;
int sort_function( const void *a, const void *b)//给日期排序
{
return( strcmp((char*)a, (char*)b) );
}
int x;
qsort((void *)list, 3, sizeof(list[0]), sort_function);
for (x = 0; x < 3; x++)
printf("%s\n", list[x]);
return 0;
printf("\t日期\t姓名"); //显示所有日期信息
printf("\n*********************************************************\n");
printf("\t%s\t%s\t",stu[x].list,stu[x].m);
printf("\n**********************************************************\n");
}
void main()
{
int choice=1; //用于选择对应菜单项
while(choice!=4)
{
printf("\n\n\n\t\t%s\n\t\t\t\t%s\n\n\t%s\n\t%s\n\t%s\n\t%s\n\n\t%s",
"学员信息管理系统",
"(测试版1.0)",
"1.添加日期",
"2.删除学员信息",
"3.显示学员信息",
"4.退出系统",
"请选择:");
scanf("%d",&choice);
switch (choice)
{
case 1:
add(); // 添加日期信息
break;
case 2:
del(); //删除学员信息
break;
case 3:
show(); //显示学员信息
}
}
}
----------------解决方案--------------------------------------------------------