gpt4 book ai didi

c - 如何用一个函数动态返回数字或字符串?

转载 作者:行者123 更新时间:2023-11-30 21:31:08 26 4
gpt4 key购买 nike

如何在一个函数中返回字符串或数字。

如:

int main()
{
printf("%s",rawinput("What is your name: ", "s"));
printf("%d", rawinput("How old are you: ", "n"));
}

([int] or [char *]) rawinput(char *message, char *type)
{

if(!strcmp(type,"n")){
int value;
scanf("%d",&value);
return value;}
else if(!strcmp(type, "s")){
char *value[1024];
fgets(value,1024,stdin);
return value;}
}

请注意,定义 rawinput 函数的方式会根据情况而变化。

最佳答案

不要这样做。有一种方法,但这是一种不好的做法,您不应该使用它。这是一个更好的选择:

typedef union RAWINPUT_UNION
{
char *string;
int integer;
}RAWINPUT;

RAWINPUT rawinput(char *message, char *type)
{
char *resultstring
int resultinteger;
RAWINPUT ri;

// Blah blah blah some code here.

if(type[0] == 's')
ri.string = resultstring;
else if(type[0] == 'i')
ri.integer = resultinteger;

return ri;
}

糟糕的方法是:您可以对指针执行整数算术,并将变量存储在其中,因为指针实际上是整数,只是在编译器中具有令人上瘾的抽象层。

关于c - 如何用一个函数动态返回数字或字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18641941/

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