您的位置:首页 > 其它

strstr()函数的实现

2014-06-03 18:39 246 查看
时间:2014.06.03

地点:基地

----------------------------------------------------------------------------------

一、函数功能

判断一个字符串是否是另外一个字符串的子字符串,并返回一个子字符串在另一个字符串中第一次出现的位置。没有则返回为空。注意:空字符串是任何字符串包括空字符串本身的子串

----------------------------------------------------------------------------------

二、思路

对于源字符串,即大字符串,我们假设字符串在大字符串中位置从大字符串首开始,若不是,则切换到第二个字符开始,由此可设定一个首位置游标,不断地在大字符中往后面移动。对于每个游标指定的首位置,我们对子字符串和大字符串游标开始处往后面一一比较,若中间碰到不相等字符,则马上break,进入下一轮迭代。若果一直对于每个字符相等,直到子字符串已经到了最后,即到了 ’\0' 这个字符,表明是大字符串中的一个子字符串,返回那个首位置游标。还一种情况是若大字符串的游标到了末尾还没匹配到,则说明匹配失败,小字符不是大字符串的子字符串。

----------------------------------------------------------------------------------

三、代码实现

char* StrStr(char* source_str, char* dest_str){
	for (;; ++source_str) {
		char* s_ptr = source_str;
		for (char* d_ptr = dest_str;; ++s_ptr, ++d_ptr){
			if (!*d_ptr)
				return s_ptr;
			if (*d_ptr != *s_ptr)
				break;
		}
		if (!*s_ptr)
			return nullptr;
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: