本文为firedragonpzy原创,转载务必在明显处注明:
转载自【Softeware MyZone】原文链接: http://www.firedragonpzy.com.cn/index.php/archives/1025
今天在研究sizeof的时候发现了一些比较有趣的现象,代码如下:
string str = "tr";
cout<<str.size()<<endl;//2
cout<<strlen(str.c_str())<<endl;//2
cout<<sizeof(str)<<endl;//32
cout<<str[1]<<endl;//r
//cout<<"tr".size()<<endl;//报错
cout<<strlen("tr")<<endl;//2
cout<<sizeof("tr")<<endl;//3
cout<<"tr"[2]<<endl;空白
事实表明,str和"tr"是不一样的,str是个string类型的对象,占据32位byte的空间,而"tr"是char类型的数组,末尾均以"\0"填充,而string类型的str是不以"\0"填充,这个是被string类型处理了。一个str和"tr"很明显的区别就是"tr"根本就没有size()的方法。
再说下sizeof和strlen的区别:
sizeof:取得是实际变量占据的内存空间
strlen:取得是除去"\0"后变量占据的内存空间
有关sizeof详细可参考:
http://firedragonpzy.d3.tuidc.com/index.php/archives/1015
分享到:
相关推荐
1、char[]与string之间的转换 //string 转换成 Char[] string str=hello; char[] arr=str.ToCharArray(); //Char[] 转换成 string string str1 = new ...//string 转换成 byte[] (字符串是用哪种编码生成的byte[]
C#中的string是比特殊的类,说引用类型,但不存在堆里面,而且String str=new String(“HelloWorld”)这样的重装也说没有的。 我们先来看一个方法: class Program { static void Main(string[] args) { String s...
实例如下: # bytes object b = bexample # str object s = example ...以上这篇python字符串str和字节数组相互转化方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多
新特性:模板字符串 传统字符串 let name = Jacky; let occupation = doctor;...对比两段拼接的代码,模板字符串使得我们不再需要反复使用双引号(或者单引号)了;而是改用反引号标识符(`),插入
以上内容详细介绍了Java中String字符串和char字符之间的转换和拼接操作,包括它们的基本概念、转换方法和拼接技巧。在实际编程中,这些操作是非常常见的,理解和掌握这些知识点对于编写高效、灵活的Java代码至关重要...
定义字符串(String)对象 JavaScript String 对象用于处理文本字符串。创建 String 对象语法如下: ...第二种是调用 String 函数,将转换参数 str 为原始字符串字符串并返回。第三种是定义一个字符串
【字符串String类】 在Java编程语言中,字符串是不可变的对象,它们被当作类`String`的实例来处理。`String`类位于`java.lang`包中,这意味着它总是自动导入,无需显式引入。字符串的创建和操作是Java编程的基础,...
本文将详细探讨如何在字符串(string)、内存流(MemoryStream)和比特数组(byte[])之间进行转换,这对于数据存储、网络传输或者序列化/反序列化等场景非常有用。 1. **字符串转比特数组**: - `System.Text.Encoding....
string类型 *1 即可变成 number类型 2、number–>string number类型 +’‘ 即可变成 string 类型 [removed] function screenInfo() { var str = '012.8372'; var s = 0; str = str * 1; alert(...
在C++编程中,字符串处理是一个重要的组成部分,它涉及到C风格字符串和C++标准库中的`std::string`类。这两种字符串类型虽然都是用来表示文本数据,但它们在特性和使用方式上存在显著的差异。 首先,C风格字符串是...
简单点就是string是字符(串)… 而array是数组…可以放数字啊,字符啊等一系列东东!!! 上个示例: 代码如下: var str = “liuzhanqi”; [removed](str[“length”]);//等价str.l ength var str = string....
利用原生JSON对象,将对象转为字符串 var jsObj = {}; jsObj.testArray = [1,2,3,4,5]; jsObj.name = 'CSS3'; jsObj.date = '8 May, 2011'; var str = JSON.stringify(jsObj); alert(str); 从JSON字符串...
在JavaScript编程语言中,字符串是用于处理文本的一种基本数据类型。字符串可以使用单引号('')或双引号("")创建,但在某些特定情况下,如果字符串内部包含与外部使用的相同类型的引号,则需要采取特殊措施来避免语法...
再使用整型转string的时候感觉有点棘手,因为itoa不是标准C里面的,而且即便是有itoa,其他类型转string不是很方便。后来去网上找了一下,发现有一个好方法: 代码如下:#include <iostream>#include <sstream>#...
以下是C字符串和C++中string的区别: C字符串 string对象(C++)所需的头文件名称 <string>或<string> <string>或<string>需要头文件 原因 为了使用字符串函数 为了使用string类声明 方式 char name[20]; ...
`split()` 方法也是 `String` 类的一个方法,它根据提供的正则表达式将字符串分割成多个子字符串,并返回一个字符串数组。在示例中,同样用逗号作为分隔符: ```java String str = "java,javac,javae"; String[]...
一、QString赋值给char* 例如: QString qstr;... string str2(str);//这样便把str中的值传给了str2 三 、char* 赋值给QString 例如:char *str1; QString str2; str2 += str1;//这样便把s
在JavaScript中,`String.prototype.replace()` 是一个非常重要的字符串方法,用于在字符串中查找匹配的模式(可以是正则表达式或子字符串)并替换它们。这个方法的使用技巧广泛,能够实现各种复杂的字符串处理需求...
Python中的字符串(str)类型是处理文本数据的基本工具,它是不可变的序列,即一旦创建,其内容就不能被修改。在Python编程中,理解和熟练运用字符串是至关重要的,无论是进行简单的文本处理还是复杂的文本分析。 ...
判断字符串`s`和`t`是否为重组词,即`s`的字符可以重新排列得到`t`,通常需要检查两个字符串的字符集和字符出现的次数是否相同。可以使用HashMap存储每个字符及其出现的次数,然后比较两个字符串的HashMap是否一致...