我得到这个错误;解决方案c:9:4:警告:函数的隐式声明';stricmp&x27;[-Wimplicit函数声明]x=stricmp(ap,c)&引用; #包括 #包括 #包括 #包括 int main() { 内高,毫米,不锈钢; char-ap[2]; scanf(“%d%d%d%s”、&hh、&mm、&ss、ap); 如果(stricmp(ap,“AM”)!=0) { hh+=12; } printf(“%d:%d:%d”,hh,mm,ss); 返回0; ## 此代码将12小时时钟格式转换为24小时时钟格式
##}字符串空间不足。也增加了扫描的限制我得到这个错误;解决方案c:9:4:警告:函数的隐式声明';stricmp&x27;[-Wimplicit函数声明]x=stricmp(ap,c)&引用; #包括 #包括 #包括 #包括 int main() { 内高,毫米,不锈钢; char-ap[2]; scanf(“%d%d%d%s”、&hh、&mm、&ss、ap); 如果(stricmp(ap,“AM”)!=0) { hh+=12; } printf(“%d:%d:%d”,hh,mm,ss); 返回0; ## 此代码将12小时时钟格式转换为24小时时钟格式,c,C,##}字符串空间不足。也增加了扫描的限制 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> int main() { int hh,mm,ss; char ap[2]; scanf("%d%d%d%s",&hh,&mm,&ss,ap);
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int main()
{
int hh,mm,ss;
char ap[2];
scanf("%d%d%d%s",&hh,&mm,&ss,ap);
if(stricmp(ap,"AM")!=0)
{
hh+=12;
}
printf("%d:%d:%d",hh,mm,ss);
return 0;
##
这不是标准。在linux或windows上使用
功能上缺少处理时间,如12 34 56 AM,应更改为0 34 56
char ap[3];
scanf("%d%d%d%2s",&hh,&mm,&ss,ap);
更常见的是打印带前导零的分.秒
if(stricmp(ap,"AM")==0) {
if (hh >= 12) hh -= 12;
} else if(stricmp(ap,"PM")==0) {
hh +-= 12;
}
旁白:
charap[2]代码>太短。它无法容纳以nul结尾的字符串“AM”
。感谢您的评论。因此,在字符串中,为空字符分配了一个额外的内存位置,因为字符串附加了“/0”,这是正确的,如果您键入AM
,以满足写入%s
ap[2]
的格式,则会导致缓冲区溢出。这不是标准。在linux或linux上使用windows@nishchalpro抱歉:这就是为什么它被发布为“旁白”评论,而不是答案。
printf("%d:%02d:%02d",hh,mm,ss);