//:Vc++6.0 String strchr函数
//功能:查找字符串s中首次出现字符c的位置
//参数:str 为目标字符串 c 为要查找的字符
//返回值:str 为找到第一个字符的地址
#include<stdio.h>
const char *strchr (const char * str, int c);
int main(void)
{
char * str = "hello world";
printf("%d\n", strchr(str, 'e') - str);
return 0;
}
const char *strchr (const char * str, int c)
{
if (str == NULL)
{
perror("str");
return NULL;
}
while (*str != '\0')
{
if (*str != (char)c) //将c数值强转为字符型
{
str++;
}
else
return str;
}
return NULL;
}
//在vc++6.0中的运行结果为:1
//注:注意在使用时的返回值
//参数为什么是int型?
//这个是历史原因,很久以前C语言是没有函数原型的,
//差不多就是函数声明只有名字没有参数,并且无论什么
//整数类型的传递到函数之前都会自动转换成int,也就是
//说char, short之类的都会转换成int,于是就定义成int
//。现在的C语言已经不必这样了,但是为了兼容性,这个
//带int函数的原型就保留了下来。里面是会强制转换成char的。
//~
|