UTNianos

Versión completa: Algoritmos Guia 2 [Cadena de Caracteres]
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a toodooos. Estoy resolviendo la guia 2 de Caraceres, que Pablo Snajblablabla nos pidio que resolvamos para mañana =D. Estoy teniendo un par de problemas en la codificacion de los ejercicios en aquellas funciones que tienen que devolver strings. Les pongo un ejemplo:

Desarrollar la funcion "string substring (string s, int i, int j)" retorna la subcadena de s comprendida entre la posicion i (inclusive) y j (no inclusive).

Probe tratando y asignando la nueva subcadena a un string y devolverlo pero en consola me muestra un espacio en blanco. Tambien probe con una void y pasarle la direccion de memoria de una variable "newstring", pero lo mismo, cuando lo muestro por consola no me muestra nada. No se si esta mal como desarrolle la funcion o me esta faltando algo. Les dejo como lo hize yo y me dicen. Muchas gracias.

void substring (string s, int a, int b, string& newsubs ){

int c1=0;
int i=0;


while (s[i]!='\0')
{
if (s[i]>=a and s[i]<b)
{
newsubs[c1]=s[i];
c1++;
}
else
{

}
i++;
}
newsubs[c1]='\0';

}
Lo que haría yo es: creo un nuevo string vacio y recorro mediante un for desde i hasta j la palabra dada y en cada iteracion pregunto si la variable que uso para iterar es igual a j, si es distinto agrego el carácter, si es igual, le pones el '\0' al string vacío y al final lo devolves.

Si no te deja crear la nueva variable por alguna restricción del ejercicio, recorro el string desde 0 hasta i y reemplazo los caracteres por vacíos. Despues reemplazo desde j hasta el length de la palabra y hago lo mismo. Y lo único que te falta hacer es a la palabra[j] = '\0'

Saludos, Eric!

Enviado desde mi GT-I9300 usando Tapatalk 2

Enviado desde mi GT-I9300 usando Tapatalk 2
Yo lo hice asi y funciona:


string substring(string s, int i, int j)
{
string sub;
for(int k=i-1;k<j-1;k++)
{
sub=sub+s[k];
}
return sub;
}


Fijate que en la guia te dan el prototipo de la funcion, si bien se podrian hacer todas tranquilamente con void, yo por las dudas hago las funciones exactamente como dice la guia. Espero que te sirva, saludos!
Que pasa si no llegamos a entregarlo antes de las 11hs, estoy atrasada... No se puede seguir cursando? Nos dara los ejercicios que estan mal para rehacerlo? no podemos rendir parcial?? que podria pasar con Sznadleder?
URLs de referencia