用指针C ++搜索和计数字母

时间:2014-10-11 09:27:18

标签: c++ pointers search char counter

我有一个功能

  1. letter_counting(char * s1,char letter)
  2. 我希望发送到功能句并且用户输入字母

    该功能必须是搜索并计算在句子中出现的次数**

    使用指针不使用动态内存

    这是所有代码

    #include "letter_count.h"
    
    letter_count::letter_count()
    {
    counter = 0;
    }
    
    void letter_count::Set_count(int Count)
    {
    counter = Count;
    }
    int letter_count::Get_count()
    {
    return counter;
    }
    void letter_count::letter_counting(char * s1,char letter)
    {
    //help me here.
    }
    

2 个答案:

答案 0 :(得分:1)

例如,成员函数可以定义为

void letter_count::letter_counting( const char *s1, char letter )
{
   for ( ; *st; ++st )
   {
      if ( *st == letter ) ++counter;
   }
}

void letter_count::letter_counting( const char *s1, char letter )
{
   for ( ; *st; ++st )
   {
      counter += *st == letter;
   }
}

void letter_count::letter_counting( const char *s1, char letter )
{
   while ( *st )
   {
      counter += *st++ == letter;
   }
}

等包括标准算法std::count

答案 1 :(得分:0)

我不明白为什么你在如此简单的情况下玩物体。如果我是你,我会写:

unsigned letter_count(const char*const text, const char letter){
    unsigned counter=0;
    for(unsigned i=0; text[i]!='\0'; ++i)
        if(text[i]==letter)
            ++counter;
    return counter;
}

或者,如果您更喜欢指针:

unsigned letter_count(char*const text, const char letter){
    unsigned counter=0;
    for(; *text!='\0'; ++text)
        if(*text==letter)
            ++counter;
    return counter;
}

另外,在每种情况下,我都建议你写一些额外的功能来轻松处理std::string

inline unsigned letter_count(const std::string& text, const char letter){
    return letter_count(text.c_str(), letter);
}

如果会鼓励对代码发表一些评论,请告诉我您认为我应该发表什么评论。