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

string 中的 length函数 和 size函数 的返回值  (  还有 char [ ] 中 测量字符串的  strlen 函数 )

应该是 unsigned int 类型的

不可以 和 -1 比较。

应尽量避免 unsigned int 类型 和 int类型 数据 的比较 。
当unsigned int 类型 和 int类型 数据 比较 时 ,会 把int 类型 转换 为 unsigned int类型 。如果 int是负数 ,转换 为 unsigned int 会是 一个 很大 的正整数,所以 比较的时候 会很危险。
若 将 unsigned int 强制 转换 为 int 再比较 时,不能说 没有 问题。我觉得 也可能会 出现问题,相对来说 还是 比较好的。(摘自strlen返回值的问题

-------------------------------------------------------------------------------------------------------------------------

// 例1
// string a="abcd";
// -1 和 a.length() 的比较结果

//代码

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string a="abcd";
	cout<<"a-----"<<a<<endl;
	cout<<"a.length()-----"<<a.length()<<endl;
	if( -1 >= a.length() )
		cout<<"*************"<<endl;
    return 0;
}

输出:

-------------------------------------------------------------------------------------------------------------------------

// 例2
// string a="abcd";
// -1 和 a.size() 的比较结果

//代码

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string a="abcd";
	cout<<"a----"<<a<<endl;
	cout<<"a.size()----"<<a.size()<<endl;
	if(-1>=a.size())
		cout<<"*************"<<endl;
    return 0;
}

输出:

-------------------------------------------------------------------------------------------------------------------------

// 例3
// char a[100]="abcd";
// -1 和 strlen(a) 的比较结果

//代码

#include<iostream>
#include<string>
using namespace std;
int main()
{
	char a[100]="abcd";
	cout<<"a----"<<a<<endl;
	cout<<"strlen(a)----"<<strlen(a)<<endl;
	if( -1>=strlen(a) )
		cout<<"*************"<<endl;
    return 0;
}

输出:

a----abcd
strlen(a)----4
*************
Press any key to continue

string 中的 length函数 和size函数 返回值问题,布布扣,bubuko.com

时间: 2024-10-24 23:26:38

string 中的 length函数 和size函数 返回值问题的相关文章

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

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

JavaScript-4.3函数的参数和返回值,参数数目不确定的函数调用---ShinePans

<html> <head> <meta http-equiv="content-type" vontent="text/html;charset=GB2312"/> <title> 4.3 参数数目不明确的函数调用 </title> <!--脚本部分--> <script type="text/javascript"> function a(){ var str=

创建数组,用函数分别实现初始化、清空和逆置。自己设计函数的参数,返回值

创建一个数组, 实现函数init()初始化数组. 实现empty()清空数组. 实现reverse()函数完成数组元素的逆置. 要求:自己设计函数的参数,返回值.*/ #include<stdio.h> #include<cstdlib> void init(int* arr, int length)//没有为arr开辟空间  可以不初始化. { int i = 0; for (i = 0; i<length; i++) { arr[i] = i;// scanf_s(&qu

Python——变量的引用和函数的参数和返回值的传递方式

变量的引用 在python中,所有的变量都是指向地址,变量本身不保存数据,而是保存数据在内存中的地址.我们用下面的程序来理解: 1 a = 10 2 print(id(a)) 3 a = 11 4 print(id(a)) (利用id( )方法查看数据的地址) 输出结果为: 可以发现:修改变量的值,变量保存的地址随之改变. python中: 变量和数据是分开存储的 变量 中保存着数据在内存中的地址 我们把变量中记录数据的地址的行为,叫做 引用. 通俗的来说,在 Python 中,变量的名字类似于

函数初识:定义,调用,返回值,参数

一 函数的定义,调用,返回值 1.函数的作用: 封装 减少重复代码 2.函数的书写格式 def 关键字 定义一个函数 def 函数名(): 缩进 函数体(代码块) def func(): print('我') print('爱') print('你') return '1314' #返回值,将内容返回给调用者 #不写return或写了return不写值返回None msg = func() #函数名() -- 调用 print(msg) return返回多个变量是,返回的是元祖形式,返回的内容不

javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量

定义函数.调用函数.参数.返回值 关键字function定义函数,格式如下: function 函数名(){ 函数体 } 调用函数.参数.返回值的规则和c语言规则类似. 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta chaset="UTF-8"> 5 <title></title> 6 </head> 7 <body

c&amp;c++函数的参数和返回值的传递终结版

c++函数的参数和返回值的传递方式有三种:值传递.指针传递和引用传递. 在这之前先看几个例子: 一, int a=10; int b=a; b+=10; 此时b是a的一个拷贝,改变b的值,a并不会受到影响,所以此时 a=10; b=20;二, int a=10; int &b=a; b+=10; 此时b是a的引用,对于b的任何操作都相当于对a进项操作,对于b的任何操作也都相当于对a的操作,a就是b,b就是a,所以此时a,b的值都为20.三, int a=10; int *b=&a; *b+

012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)

原文链接:https://blog.csdn.net/mattdong0106/article/details/10139389 EditText中的getText()方法的返回值为CharSequence,如果我们想要获得string类型数据的话,需要在后边加上.toString 另外,String类型转为int:Integer.parseInt(str); String类型转为float:Float.parseFloat(str); string和Date的相互转换: DateFormat

C++string中用于查找的find系列函数浅析

总述:      以下所讲的所有的string查找函数,都有唯一的返回类型,那就是size_type,即一个无符号整数(按打印出来的算).若查找成功,返回按查找规则找到的第一个字符或子串的位置:若查找失败,返回npos,即-1(打印出来为4294967295). 1.fine() 原型: //string (1) size_type find (const basic_string& str, size_type pos = 0) const noexcept; //c-string (2) s