我是C的新手,所以我们完成了这项任务,并试图让它更复杂。
我目前的问题是制作char *类型的wordMin,我不知道为什么它还没有。
我尝试制作类似但更短的程序
int numHrs = 2;
char* hours;
if (numHrs == 1) {
hours = "hour";
} else {
hours = "hours";
}
printf("\n%s\n\n", hours);
这里工作得很好。
对我的pastebin代码的任何反馈都非常受欢迎,因为我不熟悉编码并且不知道最聪明的做事方式。
答案 0 :(得分:5)
在一行中定义或声明变量时:
char* wordHrs, wordMin, wordSec;
它意味着首先将具有指向char的类型指针,而其他只是chars。 因此,在多行中定义变量,或者在每个将成为指针的变量名之前键入星号符号:
char *wordHrs, *wordMin, *wordSec;
或
char* wordHrs;
char* wordMin;
char* wordSec;
答案 1 :(得分:1)
此行可能是您遇到的问题之一(wordMin
为char[]
)
printf("%s", (char) wordMin);
你为什么要施放wordMin
?
printf("%s", wordMin);
应该有效。一个事物的数组(在你的情况下为char
)总是衰减到指向那个“某事”的指针,所以char*
就在这里。
(因为在调用char
的情况下int
转换为printf
,错误消息有点虚假