【问题标题】:Converting numbers to words in array将数字转换为数组中的单词
【发布时间】:2020-03-26 00:39:05
【问题描述】:

我需要将数字转换为数组中的单词,我们从键盘打印(数组也包括其他单词)

举个例子。输入文本:我有 2 个苹果。输出:我有两个苹果/怎么做?或者它是如何使用 itoa 编写的?

#include <stdio.h>
#include <stdlib.h>
#define MAX 170
int main(void) {
    const char* fkr[10] = { "zero" ,"one", "two", "three", "four", "five", "six","seven","eight","nine" };
    char* fk, ar;
    char afk[MAX] = {};
    gets_s(afk);
    return 0;
}

【问题讨论】:

  • C 种 gets_s() 采用 2 个参数。你用的是什么编译器?
  • Microsoft Visual Studio
  • “Microsoft Visual Studio”是一套工具。你用的是它的 C 编译器还是 C++ 编译器?
  • 我正在使用 C 编译器。

标签: c arrays pointers converters


【解决方案1】:

OP 在正确的轨道上。

查看每个char 的数字输入,并在需要时替换为文本。当找到一个数字时,使用它- '0' 来索引数字数组。

#include <stdio.h>
#include <stdlib.h>
#define MAX 170

int main(void) {
  const char* fkr[10] = { "zero" ,"one", "two", "three", "four",
      "five", "six","seven","eight","nine" };
  char* fk;
  char afk[MAX];
  if (fgets(afk, sizeof afk, stdin)) {
    char *fk = afk;
    while (*fk) {
      if (*fk >= '0' && *fk <= '9') {
        fputs(fkr[*fk - '0'], stdout);
      } else {
        putchar(*fk);
      }
      fk++;
    }
  } 
  return 0;
}

考虑额外的代码来处理 back-co-back 数字。 oneone 看起来很奇怪。也许是“一”或“十一”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2016-02-04
    相关资源
    最近更新 更多