Si el 0 asi como el resto de case no incluidos no se hará nada.
Tienes case: default para manejarlos.
Cuando quieras definir una variable en un case necesitarás usar las llaves {}
A mi me gusta ordenalos así para buena lectura:
switch (static_cast<int>(variableChar))
{
case: 'a':
{
int numero = 7;
char miLetra = 'a';
miString string1 ="h";
miString string2;
string2 += string1;
} break;
case 'b':
{
\* Lo mismo
que arriba...*/
} break;
case default:
{
std::cout<< "La letra no es \"a\"" << std::endl;
std::cout<< "La letra no es \"b\"" << std::endl;
if (variableChar > ultimoChar || variableChar < primerChar)
{
std::cout << "El numero no corresponde a un caracter" << std::endl;
}
} break;
}
Switch solo acepta números int. Debes hacer casts en algunos casos. Lo bueno es que puedes recorrer strings vectores arrays etc con el operador de array tipo:
for (int i = 0; i <variableString.size(); ++i)
{
switch (variableString[i])
{
case 'a':
{
cout << "El string contiene la letra a en la posicion" << i << endl;
string retorno;
retorno += "a";
} break;
.....
}
Blabla += retrono;
}
cout << retorno << " encontrados.";
Uso mucho estes tipos de switchs para cifrados.
varChar = 'A';
........
........
........
........
case 0:
if (varString
== static_cast<int>(varChar) )
{
ValorAscii = 65;
StringConTodoElBinario += "01000001";