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 t
podrí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.