如何解决在没有字符串库的情况下,比较c ++中不同长度的char数组
| 我有2个char数组,一个数组的长度为50,其他数组的长度为1 ... 50。我需要比较这些。 问题是,包含50个字符的数组通常包含较少的字符,但是在比较时,它也将它们考虑在内。因此,如果我有2个数组,其值为U2
,则第一个数组的长度为50,第二个数组的长度为2。
那么,如何在不使用标准字符串库的情况下进行检查?我一定不能使用字符串库,这是前提条件。
解决方法
如果不允许使用标准库功能,那么您的首要任务是对所需功能进行重新编程。在您的示例中,该值为
strcmp
。
对该功能进行编程并不困难-在线搜索应会找到几种可能的实现。
大致:
开始循环遍历两个字符串,直到在两个字符串中遇到空字符。
如果两者同时终止于空字符,则它们相等;否则,它们相等。否则,较长的字符串会更大。
在循环内部,比较每个单独的字符。
如果字符相等,请继续;否则,请继续。
否则,返回。
, 如果字符串的大小不同,我认为with2ѭ会更好:
int strncmp(const char *s1,const char *s2,size_t n);
从手册页:
如果分别找到s1小于,匹配或大于s2,则它返回小于,等于或大于零的整数。
这里有一个自定义实现,可以帮助您入门。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。