2015-01-15 7 views
-1

Word의 모든 하위 시퀀스를 생성하는 기능에 문제가 있습니다.Const char에서 Array C++

cout << *(s + y) ; 

이 줄 인쇄는 샤아와 나는 배열에

처럼이 "문자"를 추가 할 : 문제는

char str[100]; 
str+=(cout << *(s + y)); 

나도이 잘못 그러나 어떤 방법이 이것을하기 위해? char에 의한 char을 배열에 추가하려면?

기능 (이 유형 *(s + y) 문제 매우 weard, 컴파일러가 표시되어 많이도)

void encontra(const char *s) 
{ 
    string str; 
    while(*s) 
    { 
     int x=0; 
     while(*(s + x)) 
     { 
      for(int y = 0; y <= x; y++) 
       cout << *(s + y) ; 
      cout << "\n"; 
      x++; 
     } 
     s++; 
    } 
} 
+1

,'* (S + y는)'에 대한''s의 [Y]에 해당 :

대신, 당신은 쉽게 문자열에 문자를 추가 할 수 있습니다 std::string를 사용 * any *'y'. –

+0

그냥 * s가 아닌 * (s + y)의 결과를 원합니다. –

+0

@Pablodias :'* (s + y)'(또는 이와 동등한's [y]')를 사용하십시오. 그것이 당신이 원하는 성격입니다. 하지만'+ ='가 작동하기 위해서는'std :: string'이 좋을 것입니다. –

답변

1

표현식

str+=(cout << *(s + y)) 

처음 두 가지 문제점이있다 해당되는 출력 연산자 <<은 스트림에 대한 참조를 반환합니다.

두 번째 문제는 이와 같은 배열에 추가 할 수 없다는 것입니다. 당신이 전에 알고하지 않은 경우

std::string str; 
std::cout << s[y]; 
str += s[y]; 
관련 문제