NGC281964 2022-10-29 18:46 采纳率: 76.9%
浏览 17
已结题

在不同编译器结果不同,那正确结果应该是什么

strcmp(p0,p1)是0还是-1?正确结果应该是什么,怎么得出来的

img

img

  • 写回答

1条回答 默认 最新

  • 叶落花枯 2022-10-29 19:16
    关注

    strcmp(p0,p1) 结果就是0,两个字符串相等。
    strcmp(p0,p2) 结果不确定,0或-1都有可能。
    原因:strcmp函数比较字符串,只有在碰到'\0'才结束,p0和p1后面都有'\0',而p2总大小才11个字节,没有多余的字节存放'\0',所以函数比较结果不确定。
    解决办法:
    1、把p2定义大一点,比如12,并且字符串之后需要添加上'\0'
    2、用strncmp函数,strncmp(p0, p2, 11); 指定字符串比较的长度

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 创建了问题 10月29日