因为最开始说string字符串是不以'\0'结尾的,但是测试下来,确实是以'\0'结尾的。 经过一番查找,得出: std::string:标准中未规定需要\0作为字符串结尾。编译器在实现时既可以在结尾加\0,也可以不加。(因编译器不同) 但是C++11,string字符串都是以'\0'结尾。并且,当通过c_str()或data()(二者在 C++11 ...
标准没定,所以你不应该依赖它。主流实现为了省事,后面一般都会补,但你不要依赖它。
strlen()计算长度时不考虑末尾的'\0' //例1voidtest1() {charstring[10];char* str1 ="0123456789"; strcpy(string, str1 ); } string定义的长度是10,str1的最后一位默认为'\0',所以str1其实长度为11。strcpy()函数中,如果第二个串比第一个串长,是没有error的,第一个串的长度会增加,并且也可以正...
'\0'是 ASCII 码表中的第 0 个字符,英文称为 NUL,中文称为“空字符”。 该字符既不能显示,也没有控制功能,输出该字符不会有任何效果,它在C语言中唯一的作用就是作为字符串结束标志。 C语言在处理字符串时,会从前往后逐个扫描字符,一旦遇到'\0'就认为到达了字符串的末尾,就结束处理。'\0'至关重要,没有...
在c语言种,字符串的结尾字符就是'\0',这句话的意思就是判断,是否到达字符串结尾。
1、如果是char 型,那么是占用1个字节,8位。如果是string型,应该是两个字节,16位,因为末尾还有个\0字符。比如:char c = 'a';//它占用一个字符 char c[] = "a";//占用两个。char c[] = "abcde";//占用4+1 = 5 个,结尾有一个'\0'2、数字:从小到大分别为:short、int、...
C语言中的字符串,应该说是指字符串常量,如:"hello", "how are u"等,这些常量字符串本身在末尾存有一个\0,因\0是不可见字符,所以,看不到。可以把字符串存储到一个字符数组中,存储方法分为三种:1、定义字符数组,用常量字符串进行初始化 char str1[10]="hello"; //sizeof(str1...
一、string.h中的字符串处理函数 1.求字符串长度函数strlen() 调用格式: strlen(str) 功能:测试字符串长度。函数返回值就是str 中字符的个数。 2.字符串复制函数strcpy()和strncpy() 调用格式: strcpy(字符数组1,字符串2) 功能:复制第二个参数的内容到第一个...
那么其起始地址已经表示结束了,故strlen =0。由于X变量初始化为“string”+'\0'一个结束标志位,共7个char,所以sizeof =7。关于sizeof用法可参考 http://zhidao.baidu.com/link?url=h12hT1erlhK9sttjl-eI0Mx4YV1OST3z17OavcMYuLc2OJEbYD1TWjI04JYODOZUl0aXY18MNg-o-4ASgywib_ ...
C 语言的字符串是以空终止符 \0 结尾的字符数组。在 C 语言操作字符串时,空终止符会告诉函数已到达字符串的末尾。在 C 中,我们可以通过两种不同的方式声明一个字符串。第一种也是最困难的方法是定义字符数组。#include<stdio.h>intmain(){char myString[] = {'H', 'e', 'l', 'l', 'o', ','...