字符串的长度和大小的区别(C语言中字符串的大小指的是什么)

本文目录
- C语言中字符串的大小指的是什么
- 字符串的大小是由其长度所决定的吗
- 字符串长度 数组长度具体区分
- 字符串大小和长度有什么不同吗
- C中,字符串的长度和占用的存储字节有什么区别
- 字节数,字符串长度,字符个数有哪些区别
C语言中字符串的大小指的是什么
C语言中字符串的大小表示按字符的ASCII码值大小进行度量的一种表示方法。
字符串的大小是相对而言的,即至少需要2个字符串才能进行比较
对于判断2个字符串的大小可以根据如下规则进行判断:
从第一个字符开始,顺次向后直到出现不同的字符为止,然后以第一个不同的字符的ASCII码值确定,ASCII码值大的字符串就大。
举例如下:
比较字符串"abc"和"aabdfg"的大小。
由于第一个字符相同,都是’a’,所以看下一个字符。第二个字符一个是’b’,一个是‘a’,由于b的ASCII值比a的ASCII值大,所以,这二个字符串的比较结果是"abc"》"aabdfg"
字符串的大小是由其长度所决定的吗
1 字符串是没有大小的,只有长度。但在有些程序/语言里, 可以将数字的字符串直接与数字比大小。
2. 你所说的字符串大小其是就是指字符串的长度吧?
字符串长度 数组长度具体区分
你好!!!
我们还是先来看看一个例子:
代码:
#include 《iostream.h》
#include《string.h》
int main()
{
char a={’a’,’b’,’c’};
cout《《"字符串a:"《《a《《endl;
cout《《"数组的大小:"《《sizeof(a)《《endl;
cout《《"数组的大小:"《《strlen(a)《《endl;
cout《《endl;
char b={ ’a’,’b’,’c’};
cout《《"字符串b:"《《b《《endl;
cout《《"数组的大小:"《《sizeof(b)《《endl;
cout《《"数组的大小:"《《strlen(b)《《endl;
return 0;
}
结果:
字符串a:abc汤�
数组的大小:3
数组的大小:7
字符串b:abc
数组的大小:5
数组的大小:3
Press any key to continue
首先要知道:sizeof()求的是在内存中的分配的长度(暂且这样讲)
strlen()是求内存中实际已经使用的空间,也就是说虽然分配了很多空间,但是好多空间都没有用到,都是空的。
还要知道字符串的结束标志是‘\0’即空字符!!!
char a={ ‘a’,’b’,’c’};表示给数组的第一,第二,第三个字节的元素是a,b,c,而此时的数组的大小不是知道的,也就是系统已经在栈里至少分配了3个字节大的内存,要是数组在栈里是连续存放的,因此数组的后面还有多少个字节谁也不知道,要是此时输出字符串,输出a,b,c后由于赋值的后没有赋结束标志(一个字符一个字符的赋值系统不会自动的在最后添加结束标志),所以数组会一直向后面移动,知道遇见结束标志,此题可以看出字符串a:abc汤�
a,b,c,空格 中5个字节,还有一个汉字是2个字节所以数组的大小是7个字节,但是实际赋值的字符只有3个字节!!
而数组b:char b={ ’a’,’b’,’c’};数组的大小是5个字节,实际只用到了3个字节,至于后面的字节则是‘\0’输入输出都是正确的。
不理解我们再联系!!!
字符串大小和长度有什么不同吗
晕,size()大小指的是占用的物理存储空间大小, length()长度指的是有几个字符串的长度,你被误导了size不只可以用在字符串,其他对象都可以,因为int ,char你肯定知道占用几个字节,如果是一个类呢??就要用size
C中,字符串的长度和占用的存储字节有什么区别
长度是字符串的字符数,比如:
char* p = "1234";
那么p的字符数就是4,4就是其长度,也可以理解为strlen和wcslen对字符串的返回值。
占用存储字节是该字符串在内存中所占用的存储空间的表示,还是上面那个字符串,其占用存储空间就是5,包括一个空字节,所以其占用字节数为5。因此C风格ASCII字符串的长度和其字符数是不同的,除了C风格字符串(以空字节结尾的字符串),其他ASCII字符串也有长度和占用存储空间相同的情况,比如STL中的string其内存占用空间就和字符长度相同,因为它不是用空字符来标识字符串结尾的。
所以对于ASCII字符串,其长度和所占字节数可能相同。
而对于宽字符wchar_t或unicode,其字符长度肯定和所占字节数不同。
wchar_t s = L"1234";
sizeof(s)是10,wcslen(s)是4。
知道了吧,简单点这2个概念也可以理解为sizeof和strlen或wcslen返回的长度。
字节数,字符串长度,字符个数有哪些区别
对于大多数编程开发者来说,当计算字符串的长度时,脑海中闪现的第一个函数,默认情况下,是指字符的数量,一个英语字符是一个长度,一个汉字是一个长度。
大多数的字符串函数,其位置都是针对字符数量的,这使得Len函数深入人心,但是,一个Unicode字符,占用的字节数量是2Bytes。
而一个普通的ASCII字符占用的字节数量是1Byte,当需要计算字符串占用的字节数带着这个疑问,让我们一睹DataLength函数的庐山真面目。
对于varchar类型,大家都知道,这是单字节字符,一个字符占用一个字节,总共能够表示的256个字符;而对于nvarchar类型,一个字符占用两个字节,能够表示世界上所有的字符集,一个unicode字符占用两个字节。
如果要计算字符串占用的字节数量请使用DataLength函数,该函数统计字节数量时,字符串的所有字符都会计算在内,包括前导空格和结尾空格。

本文相关文章:
visual studio code字体大小设置(vs2013设置界面信息字体大小如何更改)
2026年9月16日 01:15
html表格单元格长度(html中table每个单元格大小)
2026年7月19日 07:45
excel比较函数的使用方法(excel比较大小的函数用法)
2026年5月26日 08:45
imagebutton设置图片大小(android里面button的背景图片大小怎么能根据button大小缩放)
2026年5月18日 10:45
mongodb查看数据库(如何获取mongoDB数据库大小)
2026年5月17日 02:30
更多文章:
计算机网络协议指的是tcp ip协议(TCP/IP协议是什么)
2025年10月21日 07:15
oracle数据库备份文件后缀(ORACLE 数据库导出的数据文件 什么后缀)
2026年4月7日 10:45
新加坡marina square风景(新加坡Marina Bay Sands空中花园设计欣赏)
2026年4月3日 10:45
datagridview设置表头(Datagridview表头样式设置)
2026年9月3日 13:45
mysql workbench查看表结构(在使用mysqlworkbench6.3怎么查看mysql数据库的关系图)
2025年7月31日 04:30
curl访问地址(php curl访问本地测试地址 链接超时,什么原因.公网可以)
2026年2月15日 19:15
object后面接什么(高中英语 object 意思为“拒绝“时的用法 后面跟什么)
2026年6月30日 19:00
win10系统java环境变量设置(win10怎么配置java环境变量path)
2025年6月16日 13:45
jquerytrigger参数(怎么给jquery方法传值 就是点击第2个button后执行第一个button的方式 怎么给s传值)
2025年11月5日 00:15
selective tool教程(selective tool能卸载吗)
2025年5月30日 06:30










