自从参加档案管理工作以来,小李发现很多有趣的事情,比如某领导签字时,小李就发现一些有趣的规律,如某领导签字办理的事情,结果不了了之的,大都是签字时有0的,如“2019.02.03”或“2019.11.09”等字样,如果正常处理的,则必然不带0,如“2019.2.3”或“2019.11.9”。遵循档案管理工作必须与实际相一致的原则,请为小李开发一套C语言转换程序,用字符数组的形式输入,并保留这一习惯。要求输出“2019年02月03日”或“2019年 2月 3日”字样,并换行。 测试说明 定义相应字符数组,按要求间隔划分,并转换字样,注意结尾换行。注意,由于输出需要采用字符串的形式,因此字符数组的位数,应预留一位保存'\0'结束符
时间: 2023-08-13 08:05:26 浏览: 315
以下是一个可能的C语言程序实现,输入的日期保存在字符数组date中,输出的格式保存在字符数组output中:
```
#include <stdio.h>
#include <string.h>
int main() {
char date[11];
char output[20];
scanf("%s", date);
int len = strlen(date);
if (date[len-2] == '0') {
// 如果日期中倒数第二个字符是'0',则需要特殊处理
sprintf(output, "%c%c%c%c年%c%c月%c%c日\n",
date[0], date[1], date[2], date[3],
date[5], date[6], date[8], date[9]);
} else {
// 否则直接输出即可
sprintf(output, "%s年 %s月 %s日\n",
date, date+5, date+8);
}
printf("%s", output);
return 0;
}
```
程序先读入日期字符串,然后判断倒数第二个字符是否为'0',如果是则需要特殊处理,否则直接输出即可。特殊处理采用了C语言提供的格式化输出函数`sprintf`,可以将多个参数按照指定格式输出到一个字符数组中。输出格式中使用了%c表示字符,%s表示字符串,\n表示换行符。
阅读全文