【发布时间】:2016-01-21 19:12:36
【问题描述】:
我有一个关于 strcpy 和 strcat 的问题。
在我尝试制作的程序中,我需要从财务代码中获取某人出生的年份。财政代码作为来自串行端口的字符给出,
strcpy(temp, code[6]);
strcat(temp, code[7]);
yyyy = 1900 + (atoi(temp));
这就是我想出的:基本上,年份的最后两位数字将被添加到 1900 年(我知道这对 2000 年出生的人不太适用)。 使用strcpy将第一个数字从完整代码复制到临时变量,然后我想添加第二个数字然后使用atoi并将eveything转换为整数;为此,我以从未见过的方式使用 strcat。我做对了吗?
【问题讨论】:
-
code是如何声明的? -
什么是
code?temp是什么?这不是小事,这就是“工作正常”和“未定义行为”之间的区别。 -
您需要展示更多的代码才能获得与某些测试结果相关的帮助。
-
万一
code是一个C字符串(char[]),注意strcpy和strcat都需要char *操作数,而你传递char.. . 即未定义的行为。