Ronnie_03
Power Member
Boas,
Estou a fazer um projecto de c++, e tenho uma função que verifica se um caracter está presente numa string, e se estiver a função devolve o indice onde o caracter se encontra, se não devolve -1.
A parte do meu código que tem esta função é este:
Esta função não está a funcionar correctamente, porque a função tolower(letra) e touppe(letra) estão a devolver numeros, em vez dos caracteres em minusculas e maiusculas.
O que eu gostava de saber é porquê que isso acontece, uma vez que acho que não estou a fazer nada de errado.
Cumps
Estou a fazer um projecto de c++, e tenho uma função que verifica se um caracter está presente numa string, e se estiver a função devolve o indice onde o caracter se encontra, se não devolve -1.
A parte do meu código que tem esta função é este:
Código:
[SIZE=2][COLOR=#0000ff]
[SIZE=2][COLOR=#0000ff]int[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [COLOR=white]verifica_letra([/COLOR][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]char[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#000000] [COLOR=white]letra, string palavra)[/COLOR][/COLOR][/SIZE]
[SIZE=2]{[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] char[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] c = tolower(letra);[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] char[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] d = toupper(letra);[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] if[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (palavra.find(tolower(letra)) == string::npos)[/SIZE]
[SIZE=2] {[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] if[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] (palavra.find(toupper(letra)) == string::npos)[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] return[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] -1;[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] else[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] return[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] palavra.find(toupper(letra));[/SIZE]
[SIZE=2] }[/SIZE]
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] else[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff] return[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] palavra.find(tolower(letra));[/SIZE]
}
Esta função não está a funcionar correctamente, porque a função tolower(letra) e touppe(letra) estão a devolver numeros, em vez dos caracteres em minusculas e maiusculas.
O que eu gostava de saber é porquê que isso acontece, uma vez que acho que não estou a fazer nada de errado.
Cumps