我得到这个错误;解决方案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);