如何修复这个错误,为什么我会得到它?

用户10065560

我需要将 12 小时的时间转换为 24 小时格式。

我现在硬编码了 12 小时的时间,以使事情更简单。

我的逻辑:输入 sting 07:05:45PM 提取最后 2 个字符。如果 AM 检查前 2 个字符是 12 .. 如果是,则将它们变为 00 否则输出原样 如果 PM 检查前 2 位数字是否为 12 ..如果是,则保持原样 如果不是,则将 12 添加到前 2 位数字

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>

    char* timeConversion(char* s1)
    {
        // input sting 07:05:45PM
        // extract last 2 chars.
        // if AM 
        // check is first 2 chars are 12.. if yes chance them to 00
        // else output as it is
        // if PM 
        // check if first 2 digits are 12 ..if yes leave as it is
        // if not then add 12 to first 2 digits

        char s[strlen(s1) + 1];
        strcpy(s, s1);


        char suffix[3]; // pm am 
        suffix[0] = s[strlen(s) - 2];
        suffix[1] = s[strlen(s) - 1];
        suffix[2] = '\0';

        char xx[3]; // first 2 nos
        xx[0] = s[0];
        xx[1] = s[1];
        xx[2] = '\0';

        s[strlen(s1) - 1] = '\0';
        s[strlen(s1) - 2] = '\0';

         if(strcmp(suffix, "AM") == 0)
        {
            if(strcmp(xx, "12") == 0)
            {
                s[0] = '0';
                s[1] = '0';
                strcpy(s1, s);

             }
             else
            {
                return s1;
            }
        }
        else
        {


            if(strcmp(xx, "12") == 0)
            {
                strcpy(s, s1);
                return s1;
             }
            else
            {
                int n;
                // 01 - 09 
                if(xx[0] == '0')
                {
                    char x = xx[1];
                    n = x - '0';

                    // xx = itoa(n);
                }
                else
                {
                    // 10, 11
                    n = atoi(xx);

                }
                n = n + 12;



                 // itoa(n, xx, 10);
                sprintf(xx, "%d", n); 
                s[0] = xx[0];
                s[1] = xx[1];
            }
        }
        strcpy(s1, s);
        return s1;   
    }  

    int main()
    {
       char *str = "07:05:45PM";
       char *str1 = timeConversion(str);
       printf("%s\n", str1);
       return 0;

    }

总线错误:10 是我运行代码的结果

苏拉夫·戈什

问题出在

 strcpy(s1, s);

您实际上是在尝试写入指向字符串文字第一个元素的指针它调用未定义的行为

检查函数调用

timeConversion(str);

wherestr指向一个字符串文字,任何修改字符串文字内容的尝试都是 UB。

你需要在timeConversion()函数中做的是:

  • 分配了所需的内存量(调用malloc()是一种方式)
  • 使用它来保存修改后的输出
  • 将指针返回给调用者。
  • 使用完毕后释放内存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我会得到手册页错误以及如何在fedora core 19中修复它?

来自分类Dev

为什么我会收到这个错误,我该如何修复它

来自分类Dev

为什么我会得到这个魔法

来自分类Dev

为什么我会得到这个 [object HTMLInputElement]?

来自分类Dev

为什么我会得到NoneType?

来自分类Dev

为什么我会得到这个 TypeError: 'int' object is not iterable

来自分类Dev

#1241 - 操作数应该包含 1 列 - 为什么我会得到这个?

来自分类Dev

谁能向我解释为什么我会得到堆栈溢出错误?

来自分类Dev

为什么我会得到以下错误消息:断言响应对象(...)是类“ RedirectResponse”的实例?

来自分类Dev

如果在rails中设置了正确的时区,为什么我会得到错误的时间?

来自分类Dev

为什么我会得到这个错误,警告:mysqli_stmt :: bind_param():在类型定义字符串元素数不匹配绑定变量的数

来自分类Dev

为什么我会得到这种异常的PowerTop读数?

来自分类Dev

为什么我会得到这种高度值的差异?

来自分类Dev

为什么我会得到重复的随机数?

来自分类Dev

为什么我会得到这种异常的PowerTop读数?

来自分类Dev

为什么我会得到不同的发行版?

来自分类Dev

为什么我会得到未绑定的变量bash?

来自分类Dev

为什么我会得到这些连字符?

来自分类Dev

为什么我会得到NaN值?

来自分类Dev

为什么我会得到空指针异常?

来自分类Dev

这个方案函数似乎是尾递归的,所以为什么我会得到堆栈溢出

来自分类Dev

javascript - 为什么我会得到 如果我编写脚本 ?

来自分类Dev

为什么我得到这个sqlite错误?

来自分类Dev

为什么我得到这个分段错误

来自分类Dev

为什么我得到这个错误的输出?

来自分类Dev

为什么我得到这个错误的输出?

来自分类Dev

为什么从春季获得豆类时我会得到空值?

来自分类Dev

为什么我会得到gson异常:找到了期望的对象?

来自分类Dev

为什么初始化实例变量时我会得到零?

Related 相关文章

  1. 1

    为什么我会得到手册页错误以及如何在fedora core 19中修复它?

  2. 2

    为什么我会收到这个错误,我该如何修复它

  3. 3

    为什么我会得到这个魔法

  4. 4

    为什么我会得到这个 [object HTMLInputElement]?

  5. 5

    为什么我会得到NoneType?

  6. 6

    为什么我会得到这个 TypeError: 'int' object is not iterable

  7. 7

    #1241 - 操作数应该包含 1 列 - 为什么我会得到这个?

  8. 8

    谁能向我解释为什么我会得到堆栈溢出错误?

  9. 9

    为什么我会得到以下错误消息:断言响应对象(...)是类“ RedirectResponse”的实例?

  10. 10

    如果在rails中设置了正确的时区,为什么我会得到错误的时间?

  11. 11

    为什么我会得到这个错误,警告:mysqli_stmt :: bind_param():在类型定义字符串元素数不匹配绑定变量的数

  12. 12

    为什么我会得到这种异常的PowerTop读数?

  13. 13

    为什么我会得到这种高度值的差异?

  14. 14

    为什么我会得到重复的随机数?

  15. 15

    为什么我会得到这种异常的PowerTop读数?

  16. 16

    为什么我会得到不同的发行版?

  17. 17

    为什么我会得到未绑定的变量bash?

  18. 18

    为什么我会得到这些连字符?

  19. 19

    为什么我会得到NaN值?

  20. 20

    为什么我会得到空指针异常?

  21. 21

    这个方案函数似乎是尾递归的,所以为什么我会得到堆栈溢出

  22. 22

    javascript - 为什么我会得到 如果我编写脚本 ?

  23. 23

    为什么我得到这个sqlite错误?

  24. 24

    为什么我得到这个分段错误

  25. 25

    为什么我得到这个错误的输出?

  26. 26

    为什么我得到这个错误的输出?

  27. 27

    为什么从春季获得豆类时我会得到空值?

  28. 28

    为什么我会得到gson异常:找到了期望的对象?

  29. 29

    为什么初始化实例变量时我会得到零?

热门标签

归档