python中的a.lower()与C ++中的a-> lower()有多接近

时间:2011-07-18 07:29:41

标签: python

因为变量指向python中的对象,我猜,它是一个引用。假设a是一个字符串,我可以在python中完全解释a.lower()作为指向a->lower()的指针的C / C ++ char*的替代吗?我知道这些是不同的语言,但试图将类似的概念联系起来,以便更容易理解。

编辑:假设我有一个实现字符串较低的类。

2 个答案:

答案 0 :(得分:3)

char*没有lower()方法。您的比较无效。

调用str.lower()就像依次在每个字符上调用tolower(3)并返回新字符串一样。

答案 1 :(得分:2)

你说:

  

假设我有一个实现字符串较低的类   方法

但是很难猜出该方法的实现方式。

您在C ++ / Python字符串中可能存在的主要区别是就地修改:Python字符串不可变,而C ++字符串则是。所以你的string.lower()C ++方法可能正在改变字符串,而不是返回一个新的字符串,这是Python版本所做的。

E.g。 Boost字符串库有一个to_lower()方法,可以进行修改(http://www.boost.org/doc/libs/1_47_0/doc/html/boost/algorithm/to_lower.html)