如何不用c++自带的函数,写一个函数来得到一个字符串在另一个字符串中最后第一次出现的地址?
时间: 2024-03-26 22:42:14 浏览: 56
可以使用暴力匹配算法来实现该功能。具体实现步骤如下:
1. 定义一个函数,接收两个字符串作为参数,返回值为一个字符指针。
2. 在函数中定义两个指针,分别指向两个字符串。
3. 使用循环遍历第一个字符串,每次将第二个字符串的指针指向开头。
4. 对于第一个字符串的每一个字符,使用另一个循环来遍历第二个字符串,如果第一个字符串中的字符与第二个字符串中的字符不相同,则退出第二个循环。
5. 如果第一个字符串中的字符与第二个字符串中的字符相同,则分别将两个指针向后移动一位,继续比较下一个字符。
6. 如果第二个循环中的指针已经指向了第二个字符串的末尾,则表示找到了第一个字符串中最后一次出现第二个字符串的位置,返回第一个循环中的指针位置。
7. 如果第一个循环中的指针已经遍历完了第一个字符串,则表示第二个字符串没有在第一个字符串中出现,返回NULL。
下面是一份C++代码示例:
```
char* str_last(const char* str1, const char* str2)
{
if (!*str2) return (char*)str1;
char* last = NULL;
while (*str1)
{
if (*str1 == *str2)
{
const char* p1 = str1;
const char* p2 = str2;
while (*p1 && *p2 && *p1 == *p2)
{
++p1;
++p2;
}
if (!*p2)
{
last = (char*)str1;
}
}
++str1;
}
return last;
}
```
阅读全文