int find(char* source/*源串*/, char* target/*子串*/)//找到返回在源串中的位置,未找到返回-1,如果要改为找到返回1,把return i改为return 1;
{
int i,j;
int s_len=strlen(source);
int t_len=strlen(target);
if(t_len>s_len)
{
return -1;
}
for(i=0;i
{
j=0;
int flag=1;
if(source[i]==target[j])
{
int k,p=i;
for(k=0;k {
if(source[p]==target[j])
{
p++;
j++;
continue;
}
else
{
flag=0;
break;
}
}
}
else
{
continue;
}
if(flag==1)
{
return i;
}
}
return -1;
}
函数指针有时候是很有用的,比如在结构体中定义函数指针就可以在C语言中实现类似C++的类成员函数的特性.
下面的程序定义了一个函数指针数组,根据输入数字的余数(1或0),不用if else就能调用相应的函数了.
// 输入为奇数
void FuncOdd(int n)
{
float i, nIterator = 0;
printf("You entered an odd number.n");
for (i = 1; i {
nIterator+=1/i;
}
printf("And the result is: %fn",nIterator);
}
// 输入为偶数
void FuncEven(int n)
{
float i, nIterator = 0;
printf("You entered an even number;n");
for (i = 2; i {
nIterator+=1/i;
}
printf("And the result is: %fn",nIterator);
}
int main()
{
int nInput = 0; // 存放输入的数字
void (*func[2])(int); // 定义函数指针,指向两个不同的函数
func[0] = FuncEven;
func[1] = FuncOdd;
printf("Please input a number:"); // 从控制台获取输入
scanf("%d",&nInput);
(*func[nInput%2])(nInput); // 根据输入数字调用相应函数
return 0;
}
int top 应不属于指针的范畴了,而是int的常用变量的定义,这个top要看是怎么用法,如果按照负数,0,正数来使用的话,可以判断它是用来做为这个类的一个特殊的定义标识; 如果这个变量是一个循环里面的的计数器的话(意思就是随着循环的次数增多或者减少)就可以判断这个循环成功的执行的多少次了
Reader是一个类名,意思类也是一种数据类型
就像整型int一样是一个数据类型名称
Reader read[Maxr];意思是定义了一个这样类的数组变量,Marxr 估计就是一个宏定义好的一个数值
为什么可以这样定义呢,应为class可以包含任意的数据类型(和c里面的struct一样),也包括外部class
以上是用指针方式编写C语言函数的实现的详细内容。更多信息请关注PHP中文网其他相关文章!