合并日期相同的信息。比如,在文档中有如下两行: 1980-3-14 BC 1980-3-14 AB 则应合并成: 1980-3-14 ABC C语言实现
时间: 2023-12-09 10:05:08 浏览: 73
bcprov-jdk15on-1.49.jar中文文档.zip
好的,我了解了您的要求。下面是C语言实现的代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100], date[20][20], temp[20];
int count = 0, i, j;
// 读入多行信息,保存到字符串数组date中
while (fgets(str, sizeof(str), stdin)) {
// 将输入的每一行信息按空格分隔,存到date[count]中
char *token = strtok(str, " ");
while (token != NULL) {
strcpy(date[count], token);
count++;
token = strtok(NULL, " ");
}
}
// 对date数组中的信息按日期进行排序
for (i = 0; i < count - 1; i++) {
for (j = i + 1; j < count; j++) {
if (strcmp(date[i], date[j]) > 0) {
strcpy(temp, date[i]);
strcpy(date[i], date[j]);
strcpy(date[j], temp);
}
}
}
// 输出合并后的信息
printf("%s ", date[0]);
for (i = 1; i < count; i++) {
if (strcmp(date[i], date[i - 1]) != 0) {
printf("\n%s ", date[i]);
} else {
printf("%s", strchr(strchr(strchr(str[i], ' ') + 1, ' ') + 1, ' '));
}
}
return 0;
}
```
注意:以上代码只能处理按空格分隔的信息,并且对于日期格式只能为"yyyy-m-d"。如果有其他需求,可以根据自己的情况进行修改。
阅读全文