C中函数指针的典型用法

使用函数指针实现字符串的追加与字符串的拷贝功能

mystrcat.c

#include <stdio.h>

char *mystrcat(char *dest, const char *src)
{
	char *tmp = dest;

    while(*dest !='\0')
    {
		dest++;
	}	
    
	while(*src != '\0')
    {
		*dest = *src;
		dest++;
		src++;
	}
    
	*dest =  '\0';

    return tmp;
}


mystrcpy.c

#include <stdio.h>

char *mystrcpy(char *dest, const char *src)
{
	char *tmp = dest;
    
	while(*src != '\0')
    {
		*tmp = *src;
		tmp++;
		src++;
	}
	*tmp = '\0';
    
	return dest;
}


main.c

#include <stdio.h>

/*  pfunc_t <==> char *(*)(char *,const char *)  */

typedef char* (*pfunc_t)(char *,const char *);

char *mystrcat(char *,const char *);
char *mystrcpy(char *,const char *);



char *str_func(char *dest,const char *src,pfunc_t pfunc)
{
	return (*pfunc)(dest,src);
}

int main(int argc, const char *argv[])
{
	char buf[32] = "hello ";
	char *p = "world";
	printf("%s\n",str_func(buf,p,mystrcat));
	printf("%s\n",str_func(buf,p,mystrcpy));
	return 0;
}

测试

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值