//模拟实现strchr
概述:
查找一个字符c在另一个字符串str中末次出现的位置,并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未找到指定的字符,返回NULL。
解题思路:
1> 通过外部函数找到对应的字符,若找到返回该字符,否则返回0;
2> 通过获取该字符找到其所在位置,打印从该字符起剩余的字符。
源代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//实现strchr
int Chr(const char* arr1, char c)
{
int i = 0;
size_t len = strlen(arr1);
for (i = len; i > 0; i--)
{
//判断如果找到返回该字符
if (arr1[i] == c)
{
return arr1[i];
break;
}
}
return 0;
}
int main()
{
char arr1[] = "hello";
char arr2[100] = { 0 };
char c = 'e';
int ret = Chr(arr1, c);
int len = strlen(arr1);
if (ret != 0)
{
int i = 0;
for (i = len; i >= 0; --i)
{
//找末次第一个相同位
if (arr1[i] == ret)
{
int j = i;
int k = 0;
//将剩余字符拷贝到arr2中
for (; j >= 0; j--)
{
arr2[k] = arr1[j];
k++;
}
}
}
printf("%s\n", arr2);
}
else
{
printf("%d\n",ret);
}
system("pause");
return 0;
}
运行结果: