【问题标题】:How do you count the number of occurences of a letter in a given word?您如何计算给定单词中字母的出现次数?
【发布时间】:2017-04-30 17:49:54
【问题描述】:

您好,您如何计算给定单词中出现的次数,如下所示,因为我现在拥有的程序似乎无法正确显示空间。

#include <stdio.h>

int main(void)
{
 char a;
 char lang[] = "pneumonoultramicroscopicsilicovolcanoconiosis";
 char i = 0;
 char count = 0;


 printf("pneumonoultramicroscopicsilicovolcanoconiosis\n");
 printf("\nEnter the letter you want to find the number of\n");
 scanf("%c", &lang);
 for (i = 0; i <= 46; i++)
  if (a == lang[i]) {
   count++;
  }
 printf("Number of %c is %d..\n", a, count);

 return 0;

【问题讨论】:

标签: c


【解决方案1】:

你的 scanf 是问题。

试试:

 scanf("%c",&a);

【讨论】:

  • 嗨,但它一直给我一个错误,说“未解析的外部符号”
  • “未解析的外部符号”是链接错误,当它找不到程序中使用的函数的实现时。在你的程序中,我们只有 print,scanf。所以很可能检查你的安装和库的路径。
【解决方案2】:

count 声明为int 而不是char 也改变 scanf 接受输入a

#include <stdio.h>

int main(void)
{
 char a;
 char lang[] = "pneumonoultramicroscopicsilicovolcanoconiosis";
 char i = 0;
 int count = 0;


 printf("pneumonoultramicroscopicsilicovolcanoconiosis\n");
 printf("\nEnter the letter you want to find the number of\n");
 scanf("%c", &a);
 for (i = 0; i <= 46; i++)
  if (a == lang[i]) {
   count++;
  }
 printf("Number of %c is %d..\n", a, count);

 return 0;
}

【讨论】:

  • "声明计数为int 而不是char" 是个好主意,但不是必需的。在char 中累积计数,虽然比int 更有限,但可以。
【解决方案3】:

如果可能的话,您可能不应该对字符串的最大长度 (46) 进行硬编码,以防您获得更长的字符串,但假设它是一个已设置的分配分配,它应该不是问题。

如果可能的话,i 和 count 也应该是整数,以获得更大的计数。 &lang 应该是 &a 因为 lang 已经分配,​​而 a 是您的检查器。

【讨论】:

    猜你喜欢
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多