gpt4 book ai didi

c - 将作为第二个参数传递的函数应用于指针 s 指向的数组的每个索引的函数

转载 作者:行者123 更新时间:2023-11-30 19:04:57 25 4
gpt4 key购买 nike

enter image description here我有以下功能:

void ft_striter(char *s, void (*f)(char *));

此函数旨在应用函数 fs 指向的数组的每个索引.

我已经看过它的代码,但我的问题是我不理解该函数本身以及如何为其编写测试。我希望能够清楚地理解它并应用它。有人可以帮我分解一下吗?

请查看相关函数的链接:

最佳答案

您的问题中仍然有一些不清楚的地方,但我按字面意思理解了文本:

ft_striter() 迭代字符串 s。 OP 没有定义终止条件。因此,我使用了通常的 – 0 终止符。

do_something() 是另一个演示如何调用 f 的函数。重要的是,do_something()ft_striter() 中参数 f 所需的签名相匹配。否则,在最好的情况下编译器会提示,在最坏的情况下 - 未定义的行为。

示例代码:

#include <stdio.h>

void ft_striter(char *s, void (*f)(char*))
{
for (; *s; ++s) f(s);
}

void do_something(char *s)
{
printf("s: '%s'\n", s);
}

int main()
{
char test[] = "Hello World.";
ft_striter(test, &do_something);
/* done */
return 0;
}

输出:

s: 'Hello World.'
s: 'ello World.'
s: 'llo World.'
s: 'lo World.'
s: 'o World.'
s: ' World.'
s: 'World.'
s: 'orld.'
s: 'rld.'
s: 'ld.'
s: 'd.'
s: '.'

Live Demo on wandbox

关于c - 将作为第二个参数传递的函数应用于指针 s 指向的数组的每个索引的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50841447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com