Ir ao conteúdo
  • Cadastre-se

C++ Função toupper em c++


Sh 1

Posts recomendados

@Sh 1  Olá. Dá uma olhada no código para ver se é isso q você quer:

 

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

char my_toupper(char ch) {
    return toupper(static_cast<unsigned char>(ch));
    //return toupper(ch);
}

string str_toupper(string s) {
    transform(s.begin(), s.end(), s.begin(), ::toupper);
    return s;
}

int main() {

    string texto = "Exemplo de String";

    cout <<  str_toupper(texto) << endl;

    char letra = 'a';

    cout << my_toupper(letra) << endl;

    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

10 horas atrás, giu_d disse:

@Sh 1  Olá. Dá uma olhada no código para ver se é isso q você quer:

 


#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

char my_toupper(char ch) {
    return toupper(static_cast<unsigned char>(ch));
    //return toupper(ch);
}

string str_toupper(string s) {
    transform(s.begin(), s.end(), s.begin(), ::toupper);
    return s;
}

int main() {

    string texto = "Exemplo de String";

    cout <<  str_toupper(texto) << endl;

    char letra = 'a';

    cout << my_toupper(letra) << endl;

    return 0;
}

 

Poderia simplificar o código usando uma lambda:

string str_toupper(string s) {
    transform(s.begin(), s.end(), s.begin(), [](char c) { return c - 32; });
    return s;
}

 

Link para o comentário
Compartilhar em outros sites

@cyer

3 horas atrás, cyer disse:

Poderia simplificar o código usando uma lambda:


string str_toupper(string s) {
    transform(s.begin(), s.end(), s.begin(), [](char c) { return c - 32; });
    return s;
}

  

Olá. De acordo com essa função q você criou só seria retornado um valor correto se a string fosse composta por letras minúsculas, pois o comando c - 32 é baseado na tabela ASCII. Ou seja: A letra 'a', na tabela ASCII, é representada pelo valor 97, tirando 32 desse valor o mesmo passaria a ser de 65, que seria a letra 'A'. Só que se na string tiver uma letra maiúscula esse cálculo retornaria um valor inesperado, um símbolo ou um número provavelmente

adicionado 56 minutos depois

@cyer  Olá. Sendo sincero, logo q me deparei com esse tópico, esperava q houvesse no C++ uma função própria para converter uma string para letras maiúsculas, tal como a função strupr()  disponível para o C, com o uso da biblioteca <string.h>.

Mas parece q não tem não

Link para o comentário
Compartilhar em outros sites

1 hora atrás, giu_d disse:

@cyer  Olá. Sendo sincero, logo q me deparei com esse tópico, esperava q houvesse no C++ uma função própria para converter uma string para letras maiúsculas, tal como a função strupr()  disponível para o C, com o uso da biblioteca <string.h>.

Mas parece q não tem não

Talvez isso interesse:

#include <algorithm>
#include <cctype>
#include <functional>

std::string& stoupper( const std::string& s )
  {
  std::string result( s );
  std::transform(
    s.begin(),
    s.end(),
    result.begin(),
    std::ptr_fun <int, int> ( std::toupper )
    );
  return result;
  }

http://www.cplusplus.com/forum/general/21215/

adicionado 2 minutos depois

c++11

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...