个人比较喜欢的一个题目:
编写一个函数,比较两个字符串的相等性,如果字符串相等,函数应该返True,不等则返回False。函数应该忽略大小写,标点符号及空白字符。用各种输入测试你的函数。(摘自Absolute C++ 编程题第9.9题)
分析:
1.应该写一个忽略大小写的函数,一般的作法是,无论大小写都转换为小写(个人的习惯吧),过程大概是遍历字符串的每一个字符,然后对其进行tolower()操作,tolower和toupper函数的注意事情在之前有介绍过了(当然此处和之前没有什么关系)。
2.忽略标点字符和空格,目前还没学习正则表达式,而且也不知道C++有没有(我所知道的python有),但是吃出我的作法是:将标点符号和空格放在一个字符串(punct)里面,然后在遍历字符串的时候,对每个字符,判断是否出现在punct中即(punct.find()) ,如果不在其中说明则不是标点或空格,故将此字符push_back();