不同编程语言对字符串的默认支持程度不同,脚本语言倾向于让字符串操作更简单易懂,可以支持字符串和不同类型互操作。
字符串加法
- C语言把字符串当指针,两个指针相加不允许。
- C++不支持两个字符串相加
std::string s = “hello ” + “world”;- 但如果是字符串和整数相加,等同于指针加法,C/C++一样。
- 例如”hello” + 1是字符串”ello”.
- Java/C#均支持字符串相加,包括字符串 + <其他类型>(其他类型自动转换成字符串)。
- Python支持两个字符串相加,但不允许字符串和整数相加。
- PHP利用.和.=实现字符串拼接。
转换成字符串
此功能并非核心需求,早期编程语言一般不自带标准类型转换字符串功能。Java/Python/JS等语言很自然加入。
- Java/C#/JS利用toString或ToString函数完成,Python函数名更精简: str().
- C90 atoi可转换字符串到int整数(其他类型有不同API,比如atol, atoll, 名称不统一),C99引入itoa将int整数转换成字符串,但没有对其他数据类型的转换API,可利用sprintf完成,C++额外提供stringstream/ostringstream也可间接完成转换,C++11引入to_string(val)函数轻松完成,同时引入sto*反转为对应数据类型。
- C++为了提高效率,避免各种对象复制拷贝,提供了低层次原地转换API: to_chars和from_chars.
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!