比较不带字符串库的c ++中不同长度的char数组

Jan*_*eks 0 c++

我有2个char数组,一个长度为50,其他长度为1 ... 50.我需要比较这些.

问题是,包含50个字符的数组通常包含较少的字符,但在比较时,它也会将它们考虑在内.因此,如果我有2个数组,其值为U2,第一个长度为50,第二个为2.

那么,如何在不使用标准字符串库的情况下进行检查?我不能使用字符串库,这是先决条件.

Kon*_*lph 5

如果不允许使用标准库功能,则首要任务是重新编程所需的功能.在你的例子中,这将是strcmp.

编程这个功能并不困难 - 在线搜索应该找到几个可能的实现.

大致:

  • 在循环中开始遍历两个字符串,直到遇到任一字符串中的空字符.
  • 如果两者同时以null char结尾,则它们是相等的; 否则较长的字符串更大.
  • 在循环内部,比较每个单独的字符.
    • 如果字符相等,继续;
    • 否则,返回.