如何在 C 中打印字符串或整数?

菲亚诺克斯

我有sturct token_t下面的。它里面有两件事

  • 类型(枚举)
  • 价值(联合)

value 是 union 的原因,cz 标记可以是数字或字符串。主要问题是我无法设计一个合适的函数来为我打印这个令牌。看看我的void print_token(token_t* token)功能。我知道这很可怕。只是因为printf()仅打印 %d(十进制)或 %s(字符串)我无法打印我的令牌。无论值是什么,我都希望我的函数打印令牌。

// ===========================================================================
typedef enum token_type_t 
{
    ID,  // Identifier
    STR, // String
    WHS, // Whitespace 
    LPR, // Left Parenthesis
    RPR, // Right Parenthesis
    LCB, // Left Curly Bracket
    RCB, // Right Curly Bracket
    LSB, // Left Square Bracket
    RSB, // Left Square Bracket
    EOF, // End Of File
    EQL, // Equal Sign
    SEM, // Semicolon
} token_type_t;

typedef union token_value_t 
{
    char* str_value;
    int int_value;
} token_value_t;

typedef struct token_t 
{
    token_type_t  type;
    token_value_t value;    
} token_t;
// ===========================================================================


// Here's the problem. I want this function to print the token no matter what type 
// the value is, I want it to be dynamic. Is there any way to do that?
void print_token(token_t* token)
{
    printf("Token { type: %d, value: %s }\n", token->type, token->value);
}
chux - 恢复莫妮卡

如何在 C 中打印字符串或整数?

printf()根据类型使用不同的

void print_token(const token_t* token) {
  printf("Token { type: %d, value: ", token->type);
  switch (token->type) {
    case ID: printf("%d",      token->value.int_value); break;
    case STR: printf("\"%s\"", token->value.str_value); break;
    // TBD code for other cases
  }
  printf(" }\n");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在目标C中的字符串中打印字符串对象

来自分类Dev

C 如何在字符串数组中打印字符串的大小

来自分类Dev

如何在C#中按字母顺序打印字符串中出现的字符?

来自分类Dev

如何在C中打印字符串的二维数组(带空格)?

来自分类Dev

如何在C中打印字符串的一部分

来自分类Dev

C:如何加载,存储和打印字符串和整数的混合矩阵

来自分类Dev

在c#中,我如何在同一行中打印字符串,每次打印结果时都替换该字符串?

来自分类Dev

如何仅在C ++中打印字符串的第一个单词

来自分类Dev

如何使用 getline 在 C++ 中打印字符串

来自分类Dev

如何在setter中类型为整数的方法中打印字符串?

来自分类Dev

如何在同一行中打印字符串和整数?

来自分类Dev

如何在Apache Velocity中打印字符串

来自分类Dev

如何在标签中打印字符串

来自分类Dev

如何在mysql中打印字符串变量

来自分类Dev

如何在C中的“如果”内打印字符

来自分类Dev

如何在C ++中输入整数后跟字符串?

来自分类Dev

根据C中的规则打印字符串

来自分类Dev

C程序未在结构中打印字符串

来自分类Dev

在C中很好地打印字符串数组

来自分类Dev

在C中读取和打印字符串

来自分类Dev

在c中打印字符串指针

来自分类Dev

在 C 中反转后无法打印字符串

来自分类Dev

如何在C ++中连接字符串+整数+字符串?

来自分类Dev

如何从结构中打印字符串?

来自分类Dev

如何打印字符串中的HTML数据

来自分类Dev

如何打印字符串中每行的行号?

来自分类Dev

如何从bash中的数组打印字符串?

来自分类Dev

读取并打印字符串,C

来自分类Dev

如何打印字符串数组

Related 相关文章

热门标签

归档