문자열의 4 문자가 다음 ASCII 코드 인 지 확인해야하는 함수가 있습니다. A5mnpoR89cd 여기서 mnpo가 대답입니다. 여기 내 코드입니다 :'char'에서 'const char *'로의 변환이 올바르지 않습니다. - C++ ASCII 함수
bool trzecie(string a,string b, string c, string d)
{
string x = a + b + c + d;
sort(x.begin(), x.end());
if((int)x.at(0) == (int)x.at(1) - 1 == (int)x.at(2) - 2 == (int)x.at(3) - 3)
{
return true;
}
else return false;
}
int main()
{
ifstream wejscie("hasla.txt");
string tab[200];
vector <string> vec;
for(int i=0; i<200; i++)
{
wejscie>>tab[i];
}
int licz_b = 0;
for(int i=0; i<200; i++)
{
string x = tab[i];
for(int j=3; j<x.size(); j++)
{
if(trzecie(x.at(j), x.at(j-1) , x.at(j-2), x.at(j-3))) //ERROR HERE
{
if(!trzecie(x.at(j), x.at(j-1) , x.at(j-2), x.at(j+1))) // AND HERE
{
licz_b++;
break;
}
}
}
}
cout<<"C. "<<licz_b<<endl;
}
와 나는 'const를 숯불 *'강조 라인 -fpermissive 에 '문자'에서 오류 유효하지 않은 변환을 가지고있다. 문제가 무엇입니까? 나는에
x.at(j)
변경 시도 :
x[j]
을했지만 작동 중 하나를하지 않았다;/:
다른 옵션은 있습니까?
'x.at되어야
이다 구성하는 적절한 방법이 j)'와'x [j]'는 모두 인덱스'j'에있는 문자를 제공합니다. 'char'는 암묵적으로'std :: string'으로 변환 될 수 없습니다. 아마도'trzecie'가 4'std :: string' 대신에'char's를 4 개 받아들이는 것을 의미했을 것입니다. 그렇지 않으면'substring' 메소드를 사용할 수 있습니다. –
@ FrançoisAndrieux @ 4 개의 문자를 사용 했으므로 감사합니다. – Rivi
'A == B == C == D'는 4 개의 수량이 모두 같은지 확인하지 않습니다. – aschepler