嵌入式c语言鼠标,嵌入式C语言16 指针函数

指针函数

返回值类型为指针(地址)类型的函数叫做指针函数,返回值类型可以为int * 或者char *等。

char *findstring(char *string, const char *str)

设计程序:输入一个长字符串和一个短字符串,如果能在长字符串中找到短字符串,输出长字符串的找到地址,否则输出找不到。

设计思路:

1. 对两个字符串用malloc申请内存,扫描输入后(由于malloc申请的为地址类型,所以直接将地址名放入scanf即可),存入申请的内存中。malloc为void *型,强转为char *型,

2. 设计比较函数:

比较函数返回值类型为字符串指针类型,所以需要定义为指针函数类型,并传入两个字符串的地址类型为char *型。求得两个字符串长度,在循环中判断,将长字符串的地址不断向后移,用strncmp比较两个字符是否相等,相等返回字符地址,循环结束后若不相等返回空。

3.在主函数中调用比较函数,传入两个字符串的地址,返回值存入char *型变量中,若此变量为空,则输出没找到。若不为空,输出字符串地址。

67715cf37c58

成功找到返回地址

67715cf37c58

找不到,输出没找到#include

#include

#include

char *findstring(char *string, const char *str)

{

int string_len = strlen(string);

int str_len = strlen(str);

int i;

for (i = 0 ; i < string_len - str_len +1; i++)

{

if (strncmp(string + i, str,  str_len) == 0 )

{

return string + i;

}

}

return NULL;

}

int main()

{

char *string = (char *)malloc(sizeof(char) * 100);

char *str =( char *)malloc(sizeof(char) * 10);

printf("Enter a string and a substring\n");

scanf("%s %s", string, str);

char *a = findstring(string, str);

if ( NULL == a){

printf("Can not find substring in string !");

}

else{

printf("%p", a);

}

return 0;

}

小结:

函数指针:一个指向函数的指针,为了调用函数

1. 声明:定义指针参数说明类型 :(int (*p)(int ,int *)

2 . 赋值:将函数名赋值给函数指针: p = func

3 . 传参:给指针传递参数调用函数 p(a, b)

指针函数:一个返回值为指针的函数,为了得到返回的地址

只需定义函数时将返回值改成某某*即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值