计算包含字符的单词

时间:2013-11-10 23:57:50

标签: c char character

#include <stdio.h>
int hledejznak(x)
{
    int c;
    int pocitadlo=0;
    while((c=getchar())!=EOF)
    {
        if(x==c){
            pocitadlo++;
            while((c=getchar())!=32)
            {
                printf("%d\n",c);
            };
        };
    };

    return pocitadlo;
}

int main(int argc,char *argv[])
{
    int znak=*argv[1];
    printf("answer is %d",hledejznak(znak));
    return 0;
}

大家好,我需要计算包含在终端指定为参数的字符的单词 例如:echo'hello babe'| ./main e

答案是2

....因为有两个单词包含字母“e” 我的代码不起作用,你能帮帮我吗? 感谢

1 个答案:

答案 0 :(得分:2)

  1. 不要嵌套你的循环;保持处理每个字符的外部字符
  2. 将布尔变量初始化为false&amp;只要看到所需的字符,就设置为true。
  3. 每当一个单词结束时,如果标志为真,则递增计数器。无论哪种方式,将标志设置为false(为下一个单词做好准备)。 (请注意,最后一个单词可能不以空格结尾。)
  4. 只有当您处理完所有输入时,才应打印计数器的值。