c - 我是 C 新手,正在测试代码,并且在使用函数时遇到困难

标签 c

这是代码,但我收到错误,实时参数太少,并且字符之前的预期表达式。

我正在尝试编写一个方法,然后通过该方法传递信息(输入)并获取值(输出)

#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/

相关文章:

c - scanf() 缺少第一个字母

c - 在面向对象范例中使用 C 语言对微处理器进行编程,是否可取?

objective-c - 如何按位与 CFBitVector

c - Mersenne Twister init_by_array() 函数说明

c - ELF 的符号解析

c - 宏计数参数

c - 如何在不使用c中的数组的情况下洗牌一副结构牌

android - 我们可以访问我的安卓手机的麦克风驱动程序吗

c - 在结构中使用寄存器

c - 写入内核模块中的文件 - 有 fd​​,有指针来写入 sys 调用