probleem

Status
Niet open voor verdere reacties.

sanderDrost

Gebruiker
Lid geworden
17 mrt 2007
Berichten
16
Ik heb een vraag over een paar errors die ik krijg in het volgende stuk code:

string codeer( string::iterator first, string::iterator last )
{
string::iterator pos;
stack<char> stak;
deque<char> dek;
for( pos = first; pos != last; ++pos )
{
switch( pos )
{
case 'a': case 'e': case 'i':
case 'o': case 'u': case 'y':
if( !stak.empty() )
{
for( int i = 0; i < stak.size(); ++i )
{
dek.push_back( stak.top() );
stak.pop();
}
dek.push_back( pos );
}
dek.push_back( pos );
default:
{
stak.push( pos );
}
}
}
}

en de errors:

Error E2383 opdr4.cpp 24: Switch selection expression must be of integral type in function codeer(char *,char *)

Error E2034 opdr4.cpp 35: Cannot convert 'char *' to 'char' in function codeer(char *,char *)
Error E2342 opdr4.cpp 35: Type mismatch in parameter 'x' (wanted 'const char &', got 'char *') in function codeer(char *,char *)

Error E2034 opdr4.cpp 37: Cannot convert 'char *' to 'char' in function codeer(char *,char *)
Error E2342 opdr4.cpp 37: Type mismatch in parameter 'x' (wanted 'const char &', got 'char *') in function codeer(char *,char *)

Error E2034 opdr4.cpp 40: Cannot convert 'char *' to 'char' in function codeer(char *,char *)
Error E2342 opdr4.cpp 40: Type mismatch in parameter 'x' (wanted 'const char &', got 'char *') in function codeer(char *,char *)

Weet iemand misschien wat ik hier verkeerd doe?


Die errors zijn bij: dek.push_back( pos ) 2 keer en bij stak.push( pos ), en de eerste error is bij het begin van het switch statement.

alvast bedankt,

Sander
 
Laatst bewerkt:
Het is niet mogelijk een switch statement uit te voeren met een string.
Tevens is de volgende gedachtengang niet correct:

switch( string )
{
case char:
{
}
case char:
{
}
}

eigenlijk ben je dus een string aan het vergelijken met een *char.
Je zult het moeten doen met iets van strcmp...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan