2014-10-11 24 views
-3

我有一個函數搜索和計數信指針C++

  1. letter_counting(char * s1,char letter)

我想發送的功能句與用戶輸入字母

功能必須搜索和數字出現在句子中多少次**

使用指針不使用動態存儲器

此的所有代碼

#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. 
} 
+1

問題是什麼? – 2014-10-11 09:42:56

+0

你嘗試過實施一些東西嗎? – GingerPlusPlus 2014-10-11 10:17:17

回答

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

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); 
} 

如果一些關於代碼的評論會被鼓勵,請告訴我你認爲我應該評論什麼。