C++에서 주어진 문자열의 다른 부분 문자열을 모두 가능한 한 쌍으로 만들고 싶습니다. 나는 다음과 같은 두 가지 방법을 시도 : 한다고 가정 abfabgab
내 문자열 사용하여 내가 좋아하는 문자열 쌍의 모든 가능한 조합을보고 싶어 무차별입니다 : ab
, af
, aa
, ab
, ag
, ab
을하고 두 번째 bf
, ba
을 위해 ... 등등. C++ :이 특별한 경우를 위해 한 쌍의 문자열을 문자열로 만드는 방법은 무엇입니까?
string sbstr; // where s is the string from which I wanna make substrings pair
for(unsigned int i=0; i<s.length()-1; ++i)
{
for(unsigned int j=i+1; j<s.length(); ++j)
{
sbstr=(char)s[i]+(char)s[j];
cout<<sbstr<<" ";
}
cout<<endl;
}
나는 너무 다음과 같은 노력하지만, 몇 가지 오류를 보여줍니다
char two[2];
string sbstr;
for(unsigned int i=0; i<s.length()-1; ++i)
{
for(unsigned int j=i+1; j<s.length(); ++j)
{
two[0]=s.at(i);
two[1]=s.at(j);
sbstr=two;
cout<<sbstr<<" ";
}
cout<<endl;
}
이번에는 각 문자열의 끝 부분에 쓰레기 값이 있습니다. 알아 내도록 도와주세요. 미리 감사드립니다.
'(숯) S [I]가 + (숯)의 [J ]'두 값을 연결하는 대신에 추가합니다. 두 번째 버전의 C 배열에서' '\ 0''터미네이터를 놓쳤습니다. – mch
'cout << s [i] << s [j];' –
@mch 네, 맞습니다. 나는 이것을 가지고 – jackyone