C语言 缺少第一个字符

vmdwslir  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(149)
#include <stdio.h>
#include <time.h>
#include <string.h>

int main(){
   time_t rawtime;
   struct tm *info;
   char buf[80];

   time(&rawtime);
   info= localtime(&rawtime);

   //Wed Nov 30 17:00:54 2022
   strftime(buf, 80, "%a %b %d %X %Y ", info);

   //time zone msia = MST
   char zone[5]={'M','S','T'};
   int carr1= 13, line1= 10;
   char carriage= carr1, linefeed= line1;

   zone[4]= carriage;
   zone[5]= linefeed;

   //concat
    int len1= strlen(buf);
    for (int len2=0; len2<5; len1++, len2++){
        buf[len1]=zone[len2];
    }

    printf("%s",buf);
}

我希望得到12月12日星期四xx:xx:xx MST,但是它只从第二个索引开始输出,变成12月12日xx:xx:xx MST。我不太明白为什么它在手动连接后会这样做。

e1xvtsh3

e1xvtsh31#

zone[5]= linefeed;正在写入zone的第6个元素,zone只有5个元素,并且zone[5]的位置与buf[0]的位置相同(至少对我来说是这样,显然对您来说也是这样,尽管我不认为这是有保证的)。

相关问题