2017-01-24 5 views
-2
#include <iostream> 
#include <string> 
using namespace; 

int main() 
{ 
    string word = " "; 

    do 
    { 
     cout << "Enter a word that has at least 5 characters: " << endl; 
     cin >> word; 
     }while(word.size() < 5); 

     char searchCh = '0'; 
     cout << "Enter a character and the program will tell " << 
     "you how many times it appears in the word " << word << "." << endl; 
     cin >> searchCh; 

     int counter = 0; 

    for(int i = 0; i < (int)word.size(); i++) 
    { 
     char ch = word.at(i) 

     if(searchCh == ch) 
     { 
      counter++; //counter = counter + 1 
     } 
    } 

    cout << "The number of " << searchCh << " 's in the word " << word << " is " << counter << ".\n"; 


} 
내가 계속 같은 여러 오류가 발생

: '문자열' 이 범위에서 선언되지 않았습니다이 범위 '단어'에 선언되지 않은 '착' 'ENDL'범위 에 선언되지 않았습니다 선언되지 않았습니다 이 범위에서 예상 ','또는 ';' before '}'토큰코드 블록에서 내 C++ 코드의 문제점은 무엇입니까?

코드 블럭을 사용하고 있습니다. 누군가 대답 할 수 있다면 대단히 감사하겠습니다. `사용`해야한다; 첫 번째 라인의

+1

'네임 스페이스를 사용하여 읽어주십시오

using namespace std; 

그러나 쓰고 싶다

using namespace; 

입니다 D : 감사합니다 namespace std;' –

+1

행동 변화는 없지만 전체 for 루프는'std :: count' 호출로 대체 될 수 있습니다. 보너스로,이 코드 조각의 목적은 값의 발생을 계산하는 것임을 즉시 알게됩니다. – chris

+0

Codeblocks는 IDE입니다. 이 질문은 어떤 IDE와도 관련이 없습니다. – MrEricSir

답변

2
+1

이 점에 관해서는 나쁜 습관입니다. 저는 C++ 프로그래머가 아니지만 std와 이름이 같은 라이브러리에 네임 스페이스 별칭 (http://en.cppreference.com/w/cpp/language/namespace_alias)을 사용할 수 있습니다. 저는 개인적으로 less를 입력하고 싶습니다. – MaLiN2223

+0

@ MaLiN2223 가능한 한 명시 적으로 코드를 사용하는 것을 선호합니다. 물론 다른 방법으로 문제를 처리 할 수는 있지만 해결 방법이 아님을 인식하지 못합니다. 어쩌면 나는 답을 좀 덜 주관적인 구절로 만들려고한다. – user463035818

+0

나는 너와 의견을 달리하지 않는다. C#의 내 habbits는 여기에 많은 무게가있다. 그러나 나는 그저 대안을 진술하기를 원했다. (당신이 말했듯이, 인식하지 못하는 것은 전혀 해결책이 아니다 : P). – MaLiN2223