这是代码,但我收到错误,实时参数太少,并且字符之前的预期表达式。
我正在尝试编写一个方法,然后通过该方法传递信息(输入)并获取值(输出)
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
char realtime(char input[20], char output[25]){
//char input[20];
//char output [25];
char year[5];
char month[3];
char day[3];
char hour[3];
char min[3];
char sec[3];
strncpy(year, input, 4);
year[4] = '\0';
strncpy(month, input + 4, 2);
month[2] = '\0';
strncpy(day, input + 6, 2);
day[2] = '\0';
strncpy(hour, input + 8, 2);
hour[2] = '\0';
strncpy(min, input + 10, 2);
min[2] = '\0';
strncpy(sec, input + 12, 2);
sec[2] = '\0';
sprintf(output, "%s-%s-%sT%s:%s:%s", year, month, day, hour, min, sec);
return 0;
}
int main(){
char input = "20181204193456";
realtime( char input[20], char output[25]);
printf("Parsed Date %s", output);
}
最佳答案
您需要在main中定义一个变量来保存输出,并且对realtime的定义和调用不正确。也许这样会更好:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char realtime(char *input, char *output){
//char input[20];
//char output [25];
char year[5];
char month[3];
char day[3];
char hour[3];
char min[3];
char sec[3];
strncpy(year, input, 4);
year[4] = '\0';
strncpy(month, input + 4, 2);
month[2] = '\0';
strncpy(day, input + 6, 2);
day[2] = '\0';
strncpy(hour, input + 8, 2);
hour[2] = '\0';
strncpy(min, input + 10, 2);
min[2] = '\0';
strncpy(sec, input + 12, 2);
sec[2] = '\0';
sprintf(output, "%s-%s-%sT%s:%s:%s", year, month, day, hour, min, sec);
return 0;
}
int main(){
char input[] = "20181204193456";
char output[25];
realtime(input, output);
printf("Parsed Date %s", output);
return 0;
}
关于c - 我是 C 新手,正在测试代码,并且在使用函数时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53704468/