您的位置:首页 > 其它

输入日期及提醒事件并输出

2015-08-19 15:02 411 查看
/************************************************
Enter day and remind: 10 To do or not to do
Enter day and remind: 18 My birthday
Enter day and remind: 22 Updata new version
Enter day and remind: 30 Beijing, I'll see you
Enter day and remind: 0
day     reminder
10 To do or not to do
18 My birthday
22 Updata new version
30 Beijing,
4000
I'll see you
************************************************/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_REMIND 31
#define MSG_LEN 30

void ReadLine(char *);

int main(void)
{
char dayStr[3], remindStr[MSG_LEN+1];
char * reminds[MAX_REMIND];
int i, j, day, remindNum = 0;

for (;;){

if (remindNum == MAX_REMIND){
printf("-- No space left --");
break;
}

printf("Enter day and remind: ");
scanf("%2d", &day);
if (day == 0)
break;
sprintf(dayStr, "%2d", day);
ReadLine(remindStr);

for (i = 0; i < remindNum; i++)
if (strcmp(dayStr, reminds[i]) < 0)
break;

for (j = remindNum; j > i; j--)
reminds[j] = reminds[j - 1];

reminds[i] = malloc(2 + strlen(remindStr) + 1);
if (reminds[i] == NULL){
printf("-- Not space left --");
break;
}
strcpy(reminds[i], dayStr);
strcat(reminds[i], remindStr);

remindNum++;
}

printf(" day     reminder\n");
for (i = 0; i < remindNum; i++) {
printf("%s\n", reminds[i]);
}
}

void ReadLine(char * remindStr)
{
int ch, i = 0;

while ((ch = getchar()) != '\n'){
if (i < MAX_REMIND)
remindStr[i++] = ch;
else {
printf("-- No space left --");
break;
}
}
remindStr[i] = '\0';

return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: