Cómo imprimir una cadena en C++
-
Use el operador
std::cout
y<<
para imprimir una cadena -
Use el algoritmo
std::copy
para imprimir una cadena -
Use la función
printf()
para imprimir una cadena de caracteres
Este artículo demostrará múltiples métodos sobre cómo imprimir una cadena en C++.
Use el operador std::cout
y <<
para imprimir una cadena
std::cout
es el objeto global para controlar la salida a un búfer de flujo. Para dar salida a la variable de cadena s1
al buffer, necesitamos usar el operador - <<
llamado operador de inserción de flujo. El siguiente ejemplo demuestra una operación de salida de una sola cadena.
#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
Use el algoritmo std::copy
para imprimir una cadena
El método de copy
es de la biblioteca STL <algorithm>
, y puede manipular los elementos del rango de múltiples maneras. Dado que podemos acceder al contenedor string
en sí mismo como un rango, podemos dar salida a cada elemento añadiendo el argumento std::ostream_iterator<char>
al algoritmo copy
.
Observa que este método también puede pasar un delimitador específico entre cada carácter de la cadena. En el siguiente código, no se especifica ningún delimitador (""
) para imprimir la cadena en su 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;
}
Use la función printf()
para imprimir una cadena de caracteres
printf
es una poderosa herramienta utilizada para la salida formateada. Es parte de la biblioteca de entrada y salida estándar de C. Puede ser llamada desde el código C++ directamente. printf
tiene el número de variables de los parámetros, y toma la variable string como tipo char *
, lo que significa que tenemos que llamar al método c_str
desde la variable s1
para pasarla como argumento. Nótese que cada tipo tiene su propio especificador de formato (por ejemplo, string
- %s
), que se listan en la siguiente tabla.
Especificador | Descripción |
---|---|
% |
Imprime un carácter % literal (este tipo no acepta ningún campo de banderas, ancho, precisión, longitud). |
d, i |
int como un entero firmado. %d y %i son sinónimos de salida, pero son diferentes cuando se usan con scanf para la entrada (donde usando %i interpretará un número como hexadecimal si está precedido por 0x , y octal si está precedido por 0.) |
u |
Imprimir int decimal sin firmar. |
f, F |
doble en notación normal (punto fijo). f y F sólo difieren en cómo se imprimen las cadenas para un número infinito o NaN (inf, infinito y nan para f; INF, INFINITY y NAN para F). |
e, E |
doble valor en forma estándar (d.ddde±dd ). Una conversión E utiliza la letra E (en lugar de e ) para introducir el exponente. |
g, G |
doble en notación normal o exponencial, lo que sea más apropiado para su magnitud. g utiliza letras minúsculas, G utiliza letras mayúsculas. |
x, X |
sin signo int como un número hexadecimal. x usa letras minúsculas y X usa mayúsculas. |
o |
sin firmar en octal. |
s |
cadena terminada en nulo. |
c |
char (carácter). |
p |
void* (puntero a void) en un formato definido por la aplicación. |
a, A |
doble en notación hexadecimal, comenzando con 0x o 0X. a utiliza letras minúsculas, A utiliza letras mayúsculas. |
n |
No imprime nada, pero escribe el número de caracteres escritos con éxito hasta ahora en un parámetro de puntero entero. |
#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 FacebookArtículo relacionado - C++ String
- Encuentre el primer carácter repetido en una cadena en C++
- Encuentre la subcadena común más larga en C++
- Poner en mayúscula la primera letra de una cadena en C++
- Comparación de cadenas y caracteres en C++
- Eliminar el último carácter de una cadena en C++
- Obtener el último carácter de una cadena en C++