c character conversion functions
Este tutorial cobre funções de conversão de caracteres em C ++, como conversão de um caractere em inteiro ou string e array de caracteres em string com exemplos de código:
Em C ++, à medida que desenvolvemos aplicações envolvendo vários tipos, torna-se necessário converter de um tipo para outro. Já vimos algumas conversões de tipo básicas em nossos tutoriais anteriores.
Também vimos conversões de string e conversão de tipos numéricos em strings. Além das funções de conversão de string que já vimos, existem algumas funções que são usadas para converter um caractere em outros tipos de dados.
Essas são as funções que pegam um único caractere ou uma matriz de caracteres e os convertem em outros tipos de dados.
=> Leia a série de treinamento Easy C ++.
O que você aprenderá:
- Funções de conversão de caracteres C ++
- Conclusão
Funções de conversão de caracteres C ++
Quando se trata de conversão de caractere único em inteiro ou string e conversão de array de caracteres em string, as funções de conversão mudam ligeiramente das funções de conversão de string.
c ++ em comparação com java
Neste tutorial, discutiremos as seguintes conversões:
- Conversão de caractere para inteiro (char para int C ++)
- Conversão de caractere em string (char em string C ++)
- Conversão de matriz de caracteres em string
As duas primeiras conversões lidam com um único caractere, enquanto a última conversão envolve array de caracteres.
Converter caractere em inteiro - char em int
Para converter um único caractere em um tipo inteiro, temos dois métodos, conforme declarado abaixo:
# 1) Por elenco
Podemos usar a operação de conversão para converter um único caractere em seu equivalente inteiro. Nesse caso, o equivalente ASCII do caractere será exibido.
Considere a seguinte conversão,
char a = 'A'; int num = (int) a;
Nesse caso, 'num' terá o valor 65, que é ASCII equivalente ao caractere 'A'.
Como alternativa, podemos usar a seguinte operação se quisermos converter um caractere numérico em um valor inteiro.
char a = '2'; int num = a-48;
Aqui, 48 é o valor ASCII de 0. O que é feito aqui é a segunda linha a-48 implicitamente converte char a em seu equivalente ASCII e o subtrai de 48 (50-48) que resulta no valor inteiro 2.
# 2) Usando stringstream
Como já visto no tutorial sobre funções de conversão de string, podemos converter um único caractere representado como um objeto stringstream em um inteiro ou qualquer valor numérico.
Abaixo está um código para demonstrar isso.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Resultado:
Valor convertido do caractere 5: 5
Converter caractere em string - caractere em string
Existem várias maneiras de converter um único caractere em uma string.
Vamos discutir alguns desses métodos.
# 1) Usando um construtor fornecido pela classe String.
Protótipo de função: string s (int n, char x);
Parâmetro (s):
n => Tamanho da string a ser gerada.
x => Caractere que deve ser convertido em string.
Valor de retorno: s tring obtido por conversão de personagem.
Descrição: O construtor da classe string leva o comprimento da string (n) e um único caractere como parâmetros e então converte o caractere em string.
A seguir, é fornecido um exemplo simples para demonstrar a conversão de um único caractere em string.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Resultado:
A string obtida pela conversão de um único caractere: A
A conversão acima é simples. Chamamos o construtor de string e especificamos o comprimento da string (primeiro parâmetro) como 1, uma vez que estamos convertendo um único caractere e o segundo parâmetro é o caractere a ser convertido em string (neste caso 'A').
# 2) Usando std :: string Operator = And + =
Os operadores de classe std :: string, = e + = estão sobrecarregados de caracteres. Portanto, podemos usar esses operadores para converter um único caractere em string.
Isso é demonstrado no programa mostrado abaixo.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Resultado:
A string obtida pela conversão de um único caractere: CB
Neste programa, usamos os operadores sobrecarregados, = e + =. Declaramos um objeto string e atribuímos um caractere a ele usando o operador =. Em seguida, usamos o operador + = e atribuímos outro caractere ao objeto string.
Vemos que na segunda vez o caractere realmente é concatenado ao conteúdo já existente no objeto string.
# 3) Usando vários métodos de std :: string
A classe std :: string suporta vários métodos sobrecarregados, usando os quais podemos passar um caractere para string que, em última análise, converte caractere para string.
Alguns dos métodos da classe std :: string são:
- retrocesso
Protótipo de função: void push_back (char c)
Parâmetro (s): c => caractere a ser atribuído a string
Valor de retorno: retorna vazio
Descrição: Esta função está sobrecarregada de caracteres e atribui um caractere ao final da string.
- acrescentar
Protótipo de função: string e anexar (size_t n, char c)
Parâmetro (s):
n => Número de vezes que o caractere deve ser anexado.
c => Caractere que deve ser anexado à string.
Valor de retorno: String obtida por conversão de personagem.
Descrição: A função Append de std :: string leva dois argumentos. O primeiro argumento é o número de vezes que o caractere deve ser copiado para a string. O segundo argumento é o personagem real a ser copiado. Portanto, a função append atribuirá essas muitas cópias de caracteres à string, conforme especificado no primeiro argumento.
- atribuir
Protótipo de função: string & assign (size_t n, char c);
Parâmetro (s):
n => Número de cópias do personagem.
c => caractere que deve ser copiado para a string.
Valor de retorno: String obtida por conversão de personagem.
Descrição: A função de atribuição substitui o conteúdo da string atual por n (primeiro argumento) cópias do caractere (segundo argumento).
- inserir
Protótipo de função: string e inserir (size_t pos, size_t n, char c);
Parâmetro (s):
pos => Posição no início da qual os caracteres devem ser inseridos.
n => Número de cópias do personagem.
c => Caractere que deve ser inserido na string.
Valor de retorno: String obtida por conversão de personagem.
Descrição: Esta função insere n (segundo argumento) cópias do caractere (terceiro argumento) na posição inicial da string especificada por pos (primeiro argumento).
A seguir, desenvolveremos um programa que demonstra todas as funções acima da classe std :: string.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Resultado:
push_back único caractere: A
anexar um único caractere: C
atribuir um único caractere: D
inserir um único caractere: BD
O programa acima demonstra as funções push_back, append, assign e insert. A saída mostra o resultado ou a string retornada por cada função.
# 4) Usando std :: stringstream
Já discutimos a conversão de tipos numéricos em uma string usando stringstream. A conversão de caractere em string também segue o mesmo princípio quando uma classe stringstream é usada.
O caractere fornecido é inserido no fluxo e, em seguida, o conteúdo é gravado na string.
Vamos deixar isso claro usando um programa C ++.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Resultado:
A string obtida pela conversão de um único caractere: A
Primeiro, inserimos o caractere no objeto stream e então esse buffer é escrito no objeto string. Assim, a saída do programa mostra o conteúdo do objeto string, que é um único caractere.
Converter matriz de caracteres em string
A classe std :: string possui muitos métodos que podem ser úteis ao lidar com matrizes de caracteres. Portanto, é aconselhável converter matrizes de caracteres em objetos string e, em seguida, usá-los para que possamos escrever programas eficientes.
Existem dois métodos para converter a matriz de caracteres em uma string, conforme mostrado abaixo.
# 1) Usando o Construtor de String
Como já discutido para converter um único caractere em string, podemos usar o construtor de string para converter um array de caracteres em string.
Protótipo de função: string (const char * s);
Parâmetros: s => matriz de caracteres terminada em nulo a ser convertida em string
Valor de retorno: string => string convertida
Descrição: Este construtor sobrecarregado da classe std :: string leva a matriz de caracteres ou string C como um argumento e retorna a string.
O programa a seguir demonstra essa conversão.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Resultado:
String convertida: Ajuda de teste de software
O programa acima é bastante simples. Tudo o que é necessário é apenas uma chamada para o construtor std :: string para converter o array de caracteres fornecido em string.
# 2) Usando = Operador Sobrecarregado
Outra abordagem para converter a matriz de caracteres em um objeto de string é usar um operador sobrecarregado =. Nesse caso, podemos atribuir diretamente a matriz de caracteres ao objeto string usando o operador = e o conteúdo será passado para a string.
O exemplo a seguir mostra isso.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Resultado:
String convertida: Ajuda de teste de software
O programa acima atribui a matriz diretamente a um objeto string usando o operador = que resulta na cópia do conteúdo da matriz de caracteres para o objeto string.
Conclusão
Vimos vários métodos para converter um único caractere, bem como matrizes de caracteres, em objetos de string. Como a classe std :: string tem muitas funções que nos permitem manipular as strings de maneira eficiente, é sempre útil trabalhar com dados de caracteres convertendo-os primeiro em strings.
Leitura adicional = >> Converter Char para Int em Java
Leitura adicional = >> Converter Char em String em Java
Também podemos usar métodos de classe para converter dados de caracteres em strings. Nesse caso, primeiro inserimos os dados no fluxo e depois gravamos esse buffer em um objeto string.
Em nossos tutoriais subsequentes, discutiremos uma classe stringstream e mais funções de biblioteca em C ++ em detalhes.
=> Verifique aqui para ver os tutoriais de treinamento A-Z de C ++.
Leitura recomendada
- Funções de string Python
- Tutorial Java String com String Buffer e String Builder
- Classificação de caracteres C ++ e funções de transformação
- Funções VBScript String: funções VBScript inStr, Replace, Mid e Trim
- Tutorial de divisão de string em Python
- Tutorial de string C # - Métodos de string com exemplos de código
- Strings em C ++ com exemplos
- Funções de biblioteca em C ++