【发布时间】:2015-10-05 07:28:05
【问题描述】:
最近我在尝试用 c++ 减去两个字符串的 .size() 值时遇到了一个问题。据我所知,size() 返回字符串中的字符数。所以假设我有 2 个字符串 p 和 q,abs(p.size()-q.size()) 应该返回我两个字符串长度的差异。但是当我运行这段代码时,它返回了一个突然变大的值。当我单独打印两者的长度时,或者如果我将它们的长度值存储在不同的整数中并减去它们,它们会给我正确的答案。我还不知道为什么。
【问题讨论】:
-
.size()返回size_t,它是一个无符号整数,因此会溢出。 -
顺便说一句,size 返回的字节数可能与字符数不同。