/************************************************
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, 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;
}
输入日期及提醒事件并输出
最新推荐文章于 2022-10-25 12:09:43 发布