Dos cuestiones
Primero, para responder el último punto de los detalles de la pregunta
sample input- This is string
Salida que obtuve
- ¿Por qué son tan importantes los algoritmos?
- ¿Bajo qué escenarios son apropiados los siguientes algoritmos de ruta más corta?
- ¿Cómo se compara la recomendación de amigos de Facebook con las personas de LinkedIn que quizás conozcas?
- ¿Qué consejos y técnicas puedo aprender para retener mi comprensión de algoritmos y estructuras de datos?
- ¿Cómo funciona Junglee?
La cadena de entrada es: el número total de caracteres en la cadena de entrada es: 4
¿Por qué está pasando esto?
Porque solo has leído una cadena de 4 caracteres de la entrada estándar. Usaste este código para leer:
entrada de cadena;
std :: cin >> input;
Y esto lee una palabra separada por espacios en blanco, no una línea. Dada la entrada de “This is string”, esta línea de código colocó “This” en la cadena “input”, y dejó “is string” en la secuencia de entrada, aún sin leer.
Si desea leer una línea, use getline:
entrada de cadena;
getline (std :: cin, input);
Segundo: no tiene sentido hacer una matriz que contenga el contenido de su cadena porque una cadena ya es una matriz (soluciona otros problemas menores como la falta de encabezado y la salida aparentemente faltante en el bucle al final),
#include
#include
int main () {
std :: cout << "Ingrese cualquier cadena-";
std :: entrada de cadena;
getline (std :: cin, input);
std :: cout << "\ nLa cadena de entrada es-";
int cuenta = 0;
for (char * array_point = & input [0]; * array_point! = ‘\ 0’; array_point ++) {
std :: cout << * array_point;
recuento ++;
}
std :: cout << "\ nEl número total de caracteres en la cadena de entrada es-" << cuenta << '\ n';
};
demostración en vivo [Wandbox] 三 へ (へ՞ ਊ՞) へ ハ ッ ハ ッ
(por supuesto, ese bucle es bastante tonto, dado que las cadenas tienen todo tipo de accesores convenientes:
para (char ch: input) {
std :: cout << ch;
}
std :: cout << "\ nEl número total de caracteres en la cadena de entrada es-" << input.size () << '\ n';