志在指尖
用双手敲打未来

字符串拼接函数(字符串拼接的几种方式)

字符串拼接函数

在C言语中,很早以前人们发明晰strcat函数,用于两个字符串拼接,可是它不会检查字符数组能否包容。因此人们发明晰strncat函数。
其中n可以指定拼接的个数,避免溢出。可是因为C言语没有将字符串封装成目标,所以仍然有可能会发生无法包容导致溢出过错,所以运用仍旧要当心。
C言语就是这样,将一切自由交给程序员,默许程序员是不会犯错的。
strncat()函数,用于两个字符串的拼接。
(1)函数原型
char*strncat(char*Dest,constchar*Source,size_t_Count)
(2)头文件
string.h
(3)功能
将constchar*Source所指代的字符串,拼接到char*Dest后面。依据size_t_Count的值确认拼接char*Dest所指向的字符的最大个数
(4)根底实例代码
chara[30]=”zobol\0″;charb[11]=”的魔法小屋\0″;strncat(a,b,10);printf(“%s\n”,a);
(5)输出状况
(6)根底实例代码2
strncat(a,b,8);//少拼接2个字符printf(“%s\n”,a);
(7)输出状况2
(8)问题1:最大size_t_Count的值怎么确认?
答复:用char*Dest的(数组长度-1)减去strlen(Source)的值
a_length=N-strlen(b);
(9)问题2:假如char*Dest指向的字符数组总长度不行怎么办》
答复:C言语仍旧不会主动避免,这里会发生跟strcat一样的溢出越界过错。
(10)问题3:size_t_Count超越拼接字符串数量怎么办?
答复:不要紧,超越没有关系,会主动读取到”\0″处中止C

字符串拼接的几种方式

首要,咱们创立一个函数
该函数的作用是:随机生成指定数目的字符串列表(字符串长度为5-8个字符)用于测验。
fromrandomimportchoice,randint
fromstringimportascii_letters
defcreate_str(n):
#字符列表
r_lst=[]
foriinrange(n):
#生成n个字符串
tmp_str=”
#随机生成5-8位的字符串
forjinrange(randint(5,8)):
tmp_str+=choice(ascii_letters)
r_lst.append(tmp_str)
returnr_lst
看下作用,比如生成20个随机(5-8位)的字符串,咱们直接运用create_str(20),即可获取。
首要创立一个用于生成字符串的函数
test_str=’TVOgaNh’+’SsKEWLQM’+’KiacqJ’+’ipwoVhnc’+’EfiRNa’+’qGRgLs’+’RDLdFhn’+’IMyES’+’uDcMK’+’NuzDYQU’+’GOdrJ’+’LhyvA’+’aEgdF’+’kDDHv’+’hsKLZklO’+’KnXeDJNc’+’LvVeo’+’ExNDpCAJ’+’khuDHP’+’BjvuIuA’
其次,咱们对测验办法进行分类
咱们将前面讨论的办法分为三类(分类办法参照了脚本之家中Python猫发表的一篇《Python拼接字符串的7种办法总结》的博文)
格局化类(%、format()函数)
拼接类(+、join()函数)
插值类(F-strings)
别离取其中一个进行比较看下功能。
格局化类:%和format()函数比较
条件:随机生成1000、10000个字符串列表,运用for循环遍历添加每一个字符串终究获取拼接后的字符串。
格局化类功能比较
从上图可以看到,format()函数和%拼接字符串功能差异不大,挑选自己喜欢的就可以了,但是为了添加程序可读性,主张运用format()函数进行拼接。
拼接类:+和join()函数比较
条件:随机生成100000个字符串列表,经过各自办法(for循环和序列拼接)终究获取拼接后的字符串。
拼接类功能比较
从上图可以看出,join()函数在数据量大时,功能明显优于’+’符号拼接。这是因为’+’符号拼接每次拼接时都会开辟一块新的内存空间。因此,在数据量较大时,字符换序列拼接主张直接运用join()函数。
插值类:F-strings别离比较拼接10000个和100000个字符串的功率
测验代码如下所示。
F-strings插值类功能测验
咱们与格局化类和拼接类别离进行比较,如下所示。
F-strings插值类功能比较
得出什么定论?
字符串序列拼接,不管数据量大小,首选join()函数;
格局化类处理中,%和format()拼接不同不大,但是format()函数可读性要好一点;
在数据量小于100000,字符串拼接中F-strings功能优于其它拼接办法(条件是Python版本有必要大于3.6.2);
数据量少、对程序功能要求不高、程序猿用脑过度时,选用‘+’拼接;
当触及对字符串格局进行处理时,首选format()函数和F-strings办法。
未完待续
好了,今日的内容就到这儿了,咱们利用了两篇内容对Python中字符串拼接进行了总结测验,分析了常用的办法,在这些办法中,我们参照定论的基础上,挑选自己喜欢常用的办法。有时候,在程序完成初期对功能不要考虑太多,考虑太多有时候会影响程序开发。但是,所谓熟能生巧,接触多了,在挑选数据结构或者对数据结构进行处理时,就会自然而然的挑选功能表现优异的方式办法。主张多练习,平常多涉猎相关内容。“书到用时方恨少”,平常多练、多积累类似的知识点,对我们的编程学习也是很有利的。

未经允许不得转载:IT技术网站 » 字符串拼接函数(字符串拼接的几种方式)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载