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

/************************************************
 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;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值