一、C语言中的字符串
二、C++中的字符串
三、python中的字符串
一、C语言中的字符串
C语言中使用一个以’\0’结尾的字符数组来表示一个字符串;
使用字符串相关函数需要引入库"string.h";
C和C++严格区分单引号和双引号,单引号只能用来表示单个字符。
#include "stdio.h"
#include "string.h"
int main() {
char a[] = "abcdefg";
printf("%d\n", sizeof(a));//输出8
printf("%d\n", strlen(a));//输出7
return 0;
}
char site2[6] = {'A', 'U', 'N', 'O', 'B'}; //这是一个字符数组
char site1[7] = {'A', 'U', 'N', 'O', 'B', '}';//这是一个字符串 #
二、C++中的字符串
首先,C++兼容C语言中的字符串,C++自身又提供了字符串类string,使用时需要引入头文件"string",string依然可以使用数组的方式进行元素读取。
include#
includeusing
namespace ; stdint
main (void)= {
string a "abcde" ;<<
cout . alength()<< ; endl//输出5 <<
cout sizeof ()a<< ; endl//输出32 }
=
三、python中的字符串
python中不严格区分字符和字符串,单引号和双引号在字符串问题上没有区别。
a "abcdefg" #输出7
print
(len()a)=
python中字符串是不可变对象
a "aaa" #以下语句并不是修改原先的字符串,
#而是又开辟一块内存,值为"bbb",然后a指向该内存
=
a "bbb" =
python会对字符串常量进行池化,至于多长的字符串会被池化,在ipython环境中超过100位的英文字符串依然被池化,而包含4个中文的字符串未池化。
a "abcdefg" =
b "abcdefg" #以下语句为True
id
()a== id ()b
类似的池化也会发生在整形变量上,ipython环境下,0–256会被池化。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)