codecamp

C++ find函数

apstring类还提供了其他几个可以在字符串上调用的函数。find函数的意义看起来与[]操作符相反。不同于接收索引值然后提取索引值对应的字符,find函数接收一个字符然后找到字符相应的索引。

apstring fruit = "banana";
int index = fruit.find(’a’);

上面例子的功能是找出字符串中字母‘a’的索引。在这个例子中,字母‘a’出现了三次,所以find该如何处理并不是显而易见的。根据文档,它返回第一次出现处的索引,所以结果是1。如果字符串中不存在给定字母,find函数返回-1。

此外,find还有一个版本,它接收另一个apstring作为参数,找到参数表示的子串在原字符串中出现位置的索引。例如:

apstring fruit = "banana";
int index = fruit.find("nan");

这个例子的返回值为2。

读者应该还记得,在5.4节中我们提到过可以存在多个同名函数,只要它们的参数数目或类型不同。这个例子中,C++可以根据提供参数的类型确定调用find的哪个版本。

C++ 一个运行时错误
C++ 我们自己的find版本
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }