string.length() 返回值是unsigned

int main(int argc, const char * argv[]) {
    // insert code here...
    string a = "a";
    cout<<a.size()<<endl;
    cout<<a.size()-1<<endl;
    cout<<a.length()<<endl;
    cout<<a.length()-1<<endl;

    return 0;
}

输出:

0

18446744073709551615

0

18446744073709551615

时间: 2024-08-01 11:38:04

string.length() 返回值是unsigned的相关文章

10-string类的length()返回值一起的问题

c++ string类length()(size())函数返回值–无符号数 首先,先来发现问题 string s = ""; for(int i = 0; i < s.length() - 1; ++i) { cout << "s.length = " <<s.length() << endl; break; } 1 2 3 4 5 6 输出结果: s.length = 0 显然,这句话不该输出.通过查看QT编译器下面的警告

为什么 string.find()返回值是-1

之前好像在哪里见到过这个问题,时间有点久,想不起来了,今天写字符串又碰到这个问题,书上给出的定义是当string.find()没有找到时返回的是一个非常大的值,网上有人说是-1,两种说法都对,由于整数在计算机中是依照补码形式存放的,一个高位的整数在少一位的整数表示时假设高位的第二位是1,那么少一位的表示下就是负数,假设高位整数的第二位包含第二位之后全是1,那么在少一位的表示下就是-1.string.find()返回的那个非常大的数是2的32次方,而在用4个字节表示的int,long整形,最多仅仅

关于vector.size()和string.length() 的返回类型 size_type

今天写循环的时候碰到一个问题,发现:string.length()返回的类型是size_type.它是unsigned 类型.string::size_type它在不同的机器上,长度是可以不同的,并非固定的长度.但只要你使用了这个类型,就使得你的程序适合这个机器.与实际机器匹配. 如果你的机器是32位的,那么 int  len = str.length(),就侥幸对了. 如果你的机器是64位的,那么你就 被fuck 了. unsigned 类型两个数相减,如果是结果负数,就fuck了!显然不会得

string.length()与-1比较为什么会出现匪夷所思的结果

今天调试程序发现了个匪夷所思的事情,-1与string.length()比较永远是-1大,看下面代码 #include<iostream> #include<string> using namespace std; int main() { string str; str="123"; int num=-1; //int len=str.length(); if(num<str.length()) { cout<<"-1<str

java Servlet+mysql 调用带有输入参数和返回值的存储过程(原创)

这个数据访问的功能,我在.NET+Mysql .NET+Sqlserver  PHP+Mysql上都实现过,并且都发布在了我博客园里面,因为我觉得这个功能实在是太重要,会让你少写很多SQL语句不说,还能提高程序的执行效率, 今天在JAVA+Mysql上也实现了这个功能下面我贴出代码,这次我会讲详细点,让看的朋友能更加清楚它的好处在哪里. 一.封装的代码存储过过程调用方法   关于返回类CallableStatement的解释: CallableStatement 对象为所有的DBMS 提供了一种

字符集与编码--Java string.length 与 char 类型

这篇博客用于记录学习字符编码过程中得到的结论,不做过多的理论讲述. 参考资料:字符集与编码(五) 1. char 类型 在Java中,char类型存放一个用UTF-16编码代码单元(16位)表示的字符,用于表示单个字符,通常用来表示字符常量.例如:'A'是编码为65所对应的字符常量. 与"A"不同,"A"是一个包含字符A的字符串.Unicode代码点可以表示为十六进制值,其范围从\u0000到\uFFFF.例如:\u2122表示注册符号,\u03C0表示希腊字母π.

C++笔记(3):函数的参数和返回值

刚学C++那会,做课程设计的时候总是会去网上很找别人写好的程序来参考,那时候看到函数参数列表里各种复杂的类型和奇怪的写法就头大,后来总算是慢慢搞清楚了,在此对函数各种类型的形参以及函数的返回值进行一下总结. 1.普通形参 传递普通形参也就是值传递,传递的是实际参数的一个副本,当函数被调用时,形参复制实参,也就是说此时形参和实参的值是一样的,但形参在内存中拥有自己的地址.当函数结束时形参的生命周期终止,函数内部的操作不会影响到实参的值.经典的值交换函数代码如下: void swap1(int a,

11.SpringMVC注解式开发-处理器方法的返回值

处理器方法的返回值 使用@Controller 注解的处理器的处理器方法,其返回值常用的有四种类型 1.ModelAndView 2.String 3.void 4.自定义类型对象 1.返回ModelAndView 若处理器方法处理完后,需要跳转到其他资源,且又要在跳转的资源间传递数据,此时处理器方法 返回ModelAndView比较好.当然,若要返回ModelAndView,则处理器方法中需要定义ModelAndView对象 在使用时,若该处理器方法只是进行跳转而不传递数据或只是传递数据而不向

string 中的 length函数 和size函数 返回值问题

string 中的 length函数 和 size函数 的返回值  (  还有 char [ ] 中 测量字符串的  strlen 函数 ) 应该是 unsigned int 类型的 不可以 和 -1 比较. 应尽量避免 unsigned int 类型 和 int类型 数据 的比较 .当unsigned int 类型 和 int类型 数据 比较 时 ,会 把int 类型 转换 为 unsigned int类型 .如果 int是负数 ,转换 为 unsigned int 会是 一个 很大 的正整数