gpt4 book ai didi

c - 如何将参数放入结构中?

转载 作者:行者123 更新时间:2023-11-30 17:44:24 24 4
gpt4 key购买 nike

你好,我正在创建一个 xx_printf 函数,在一个名为 find_correspondence 的函数中,我有太多参数,所以我想我可以创建一个结构并只调用 *struct,但是当我尝试在 xx_printf 函数中调用 find_correspondence 时,我'我遇到了段错误!如何解决这个问题。

int     find_correspondance(char *format, char *tab_sign, ptr_fonc *tab_func, int i, va_list ap)
{
int a;

a = 0;
while ((format[i] != tab_sign[a]) && tab_sign[a] != '\0')
a = a + 1;
if (tab_sign[a] == '\0')
{
my_putchar('%');
my_putchar(format[i]);
}
else
tab_func[a](ap);
return (i);
}

int my_printf(char *format, ...)
{
va_list ap;
ptr_fonc *func_tab;
char *flag_tab;
int i;

va_start(ap, format);
func_tab = tab_func(func_tab);
flag_tab = tab_sign(flag_tab);
i = 0;
while(format[i] != '\0')
{
if (format[i] == '%')
{
i += 1;
if (format[i] == '%')
my_putchar('%');
else if (format[i] == '\0')
return ;
else
**find_correspondence(format, flag_tab, func_tab, i, ap);**
}
else
my_putchar(format[i]);
i++;
}
va_end(ap);
}

find_correspondence(format, flag_tab, func_tab, i, ap);有什么帮助吗?

最佳答案

我认为问题可能是您在参数列表中的结构名称 va_list 之前错过了一个“结构”。它应该如下所示:

find_correspondance(char *format, char *tab_sign, ptr_fonc *tab_func,
int i, ***struct*** va_list ap)

而且,这里有一个小程序可以用作先例。

#include <stdio.h>
#include <string.h>

struct namect{
char fname[20];
char lanme[20];
int letters;
};

struct namect getinfo(void);
struct namect makeinfo(struct namect);
void showinfo(struct namect);

int main(void){
struct namect person;
person=getinfo();
person=makeinfo(person);
showinfo(person);

getchar();
return 0;
}

struct namect getinfo(void)
{
struct namect temp;
printf("Please enter your first name.\n");
gets(temp.fname);
printf("Please enter your last name.\n");
gets(temp.lanme);
return temp;
}

struct namect makeinfo(struct namect info)
{
info.letters=strlen(info.fname)+strlen(info.lanme);
return info;
}

void showinfo(struct namect info)
{
printf("%s %s,your name contains %d letters.\n",info.fname,info.lanme,info.letters);
}

关于c - 如何将参数放入结构中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20018357/

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