Saltar al contenido

Subcadena de char[] en C++

No olvides que en las ciencias cualquier problema puede tener diversas resoluciones, por lo tanto nosotros aquí te compartiremos lo más óptimo y mejor.

Solución:

Si se le permite modificar tpodrías establecer t[j] para 0 y luego usar t + i para obtener la subcadena.

Si no, tendrás que hacer una copia.

Dicho esto, ¿por qué no puedes simplemente usar std::string y ahorrarse el dolor de cabeza?

Si solo necesita leer los datos, entonces t + i es lo que desea, por desgracia, tendrá que administrar la longitud de su subcadena …

char *sub = t+i;
int len = j-i;
printf("%.*sn",len,sub);

Si necesita tener una copia distinta de la subcadena, entonces debe copiar.

Esto debería funcionar bien:

#include 
#include 
#include 

using namespace std;

int main()

 char t[200];
 cin.get(t, 200);
 int i = 5; 
 int j = 10;
 char *to = (char*) malloc(j-i+1);
 strncpy(to, t+i, j-i);
 to[j-i]='';
 cout << to;

Puedes usar new en vez de malloc Me gusta esto:

char* to = new char[j-i+1];

Te mostramos las reseñas y valoraciones de los usuarios

Si te gustó nuestro trabajo, eres capaz de dejar una reseña acerca de qué le añadirías a este enunciado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *