修身养性debug
2016-07-06 17:44
采纳率: 0%
浏览 1.4k

关于c语言strcmp,字符串满时无法比较

char a[6],b[6];
如果两个都各输满6个相同字符,再用strcmp函数比对就会产生错误结果,而少于6个则能正常产生结果,为什么?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2016-07-06 19:25
     字符串需要一个额外的单元存储结束符\\0
    所以char a[6]最多只能装5个字符,如果装6个,那么数组越界,\\0会写入数组后面相邻的内存。
    
    打赏 评论
  • threenewbee 2016-07-06 19:26

    如果两个字符串是连着的,那么第二个字符串可能被破坏。
    就像这个人遇到的问题一样
    http://ask.csdn.net/questions/267950

    不再赘述。

    打赏 评论
  • 奔跑的小胖子哦 2016-07-07 01:35

    char a[6] 你只可以输入a[0]~a[5] ,最后一位是'/0'

    打赏 评论
  • Ele丶Code 2016-07-14 01:49

    可以用strncmp

    打赏 评论

相关推荐 更多相似问题