因此,标题暗示了我的生活,我不能得到一个字符串等于另一个字符串的内容,然后正确打印。我只是为字符串弄乱了。这是代码:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <strings.h>
#define MAX_STRING_LEN 4
int main(void)
{
int opselect, mhour, mminute, rhour, rminute, exit;
char ampm[3];
char am[3] = "AM";
char pm[3] = "PM";
printf("Please enter the military time in following format HH:MM \n");
printf("(Example 13:25)\n");
rhour = 12;
rminute = 30;
mhour = 13;
mminute = 30;
strcpy(am, ampm);
printf("If the military time is %d:%d than the regular time is %d:%d %s.\n\n", mhour, mminute, rhour, rminute, ampm);
return 0;
}
程序返回
如果军事时间是13:30,那么正常时间是12:30 gibbersh。
两个随机字符代替gibbersh。对于我的生活,我看不出我做错了什么。任何帮助将不胜感激。
谢谢
答案 0 :(得分:1)
您可能想要这样做:
strcpy(ampm, am);
而不是strcpy(am, ampm);
从右到左。右边是来源,左边是dest。
读作:
copy string into first, from second
答案 1 :(得分:1)
在我看来,ampm未初始化,所以它只是打印当时内存中的内容。
答案 2 :(得分:0)
语法: strcpy(destination,source);
在你的情况下,source是ampm,它有一些垃圾值。所以你得到了意想不到的结果。
这样做: - strcpy(ampm,am):