Como imprimir uma string em C++
-
Utilize
std::coute<<Operador para imprimir uma string -
Utilize
std::copyAlgoritmo para imprimir uma string -
Utilize
printf()Função para imprimir uma string
Este artigo demonstrará vários métodos sobre como imprimir um string em C++.
Utilize std::cout e << Operador para imprimir uma string
std::cout é o objeto global para controlar a saída para um buffer de fluxo. Para emitir a variável string s1 para o buffer, precisamos utilizar o operador - << chamado operador de inserção de fluxo. O exemplo a seguir demonstra uma única operação de saída de string.
#include <iostream>
#include <iterator>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string s1 = "This string will be printed";
cout << s1;
cout << endl;
return EXIT_SUCCESS;
}
Resultado:
This string will be printed
Utilize std::copy Algoritmo para imprimir uma string
O método copy é da biblioteca STL, e pode manipular os elementos da gama de várias maneiras. Como podemos acessar o próprio contêiner como um range, podemos emitir cada elemento adicionando o argumento std::ostream_iterator<char> ao algoritmo copy.
Observe que este método também pode passar um delimitador específico entre cada caractere da string. No código a seguir, nenhum delimitador ("") é especificado para imprimir a string na forma original.
#include <iostream>
#include <iterator>
#include <string>
#include <vector>
using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::string;
using std::vector;
int main() {
string s1 = "This string will be printed";
copy(s1.begin(), s1.end(), std::ostream_iterator<char>(cout, ""));
cout << endl;
return EXIT_SUCCESS;
}
Utilize printf() Função para imprimir uma string
O printf é uma ferramenta poderosa utilizada para formatar a saída. Faz parte da biblioteca de inteiro-saída padrão C. Ela pode ser chamada diretamente do código C++. O printf tem o número de parâmetros da variável, e toma a variável string como tipo char *, o que significa que temos que chamar o método c_str da variável s1 para passá-la como um argumento. Observe que cada tipo tem seu próprio especificador de formato (por exemplo string - %s), que estão listados na tabela a seguir.
| Especificador | Descrição |
|---|---|
% |
Imprime um caractere % literal (este tipo não aceita nenhuma bandeira, largura, precisão, campos de comprimento). |
d, i |
int como um número inteiro assinado. %d e %i são sinônimos de saída, mas são diferentes quando utilizados com scanf para entrada (onde utilizar %i interpretará um número como hexadecimal se for precedido por 0x, e octal se for precedido por 0). |
u |
Imprimir int. decimal sem assinatura. |
f, F |
duplo em notação normal (ponto fixo). f e F diferem apenas em como as strings para um número infinito ou NaN são impressas (inf, infinity e nan para f; INF, INFINITY e NAN para F). |
e, E |
valor duplo na forma padrão (d.ddde±dd). Uma conversão E usa a letra E (em vez de e) para introduzir o expoente. |
g, G |
g usa letras minúsculas, G usa letras maiúsculas. |
x, X |
int não assinado como um número hexadecimal. x usa letras minúsculas e X usa letras maiúsculas. |
o |
int não assinado em octal. |
s |
string com termo nulo. |
c |
char (caractere). |
p |
void* (ponteiro para void) em um formato definido pela implementação. |
a, A |
dupla em notação hexadecimal, começando com 0x ou 0X. a utiliza letras minúsculas, A utiliza letras maiúsculas. |
n |
Imprime nada, mas escreve o número de caracteres escritos com sucesso até agora em um parâmetro de ponteiro inteiro. |
#include <iostream>
#include <iterator>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;
int main() {
string s1 = "This string will be printed";
cout << s1;
cout << endl;
printf("%s", s1.c_str());
cout << endl;
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook