Título: ejercicio en C Publicado por: howaboutno en 30 Octubre 2012, 19:53 pm hola, me estoy atascando de nuevo....
Hacer un programa para que dada una palabra de no mas de 20 caracteres y efectúe todas las rotaciones posibles de dicha palabra de forma que el último carácter pase al primero y los demás corran un espacio, es decir si la palabra fuera “HOLA” el resultado debe ser : HOLA AHOL LAHO OLAH claro, llego hasta el punto de recorrer la cadena pero luego es que no hay funcion alguna para eso... eso, que lo que no tengo claro como hacer correr un espacio el caracter... ideas? sugerencias? pistas? gracias =) Título: Re: ejercicio en C Publicado por: lapras en 30 Octubre 2012, 21:03 pm Así es como yo lo haría.
Código EDIT: añado comentarios Título: Re: ejercicio en C Publicado por: leosansan en 30 Octubre 2012, 23:42 pm Citar Espero que te sea útil. Prueba lo con números que es más visual la rotación: Código Saludos!. Título: Re: ejercicio en C Publicado por: lapras en 31 Octubre 2012, 00:14 am Me mola tu código leosansan.
Por cierto, ¿para que pones printf("\b")? ¿es por que te sale algún carácter raro? Lo digo por que me suena que en algunas plataformas el carácter nulo es imprimible y tu codigo accede al ultimo caracter de la string (NULL) y lo imprime. Yo que estoy en linux, tu código imprime esto: Código
Parece que en linux no se imprime el carácter nulo entonces al borrar se queda con una letra menos. Tal vez el remedio sería no imprimir ese carácter para no tener que borrarlo. Código . Simplemente modificando esas dos líneas Título: Re: ejercicio en C Publicado por: xiruko en 31 Octubre 2012, 00:28 am te dejo una solucion que quizas es algo confusa, aunque a mi me ha ido bien para repasar aritmetica de punteros:
Código
la salida: Código: xiruko:~$ gcc rotar.c -o rotar un saludo! Título: Re: ejercicio en C Publicado por: lapras en 31 Octubre 2012, 00:39 am @xiruko: Me encanta.
Título: Re: ejercicio en C Publicado por: rir3760 en 31 Octubre 2012, 01:42 am Otra forma consiste en indicar el numero de caracteres a imprimir mediante "%.*s" en la llamada a "printf":
Código
Un saludo Título: Re: ejercicio en C Publicado por: leosansan en 31 Octubre 2012, 07:42 am Me mola tu código leosansan. En W7 sale un espacio en blanco después de imprimir los primeros caracteres, por eso tengo que eliminarlo. Por lo que comentas, en Linux no sucede eso, por lo que podrías eliminarlo.Por cierto, ¿para que pones printf("\b")? ¿es por que te sale algún carácter raro? Título: Re: ejercicio en C Publicado por: xiruko en 31 Octubre 2012, 12:31 pm Citar Otra forma consiste en indicar el numero de caracteres a imprimir mediante "%.*s" en la llamada a "printf": Código
joder rir3760, siempre posteas codigos mucho mas simples que los mios usando "trucos" como en este caso esto del printf() xD donde has aprendido esto por ejemplo? podrias recomendarme algun libro o web que no sea de iniciacion en C sino que profundice mas? en cuanto a tu codigo, me ha gustado sobretodo lo de usar sizeof para saber el tamaño de la cadena, no lo habia pensado y asi me evitaria incluir la libreria string en el codigo. en fin... gracias por todo y a ver si puedes recomendarme algo :rolleyes: un saludo! Título: Re: ejercicio en C Publicado por: lapras en 31 Octubre 2012, 13:13 pm Lo bueno que tiene el código de rir3760 es que no hace ningún cambio en la cadena. Es genial.
Título: Re: ejercicio en C Publicado por: xiruko en 31 Octubre 2012, 13:46 pm claro, si puedes escoger cuantos caracteres elegir entonces no hacen falta historias para mover un NULL por la cadena ni nada asi. por eso digo que a mi me gustaria saber de donde saca estas cosas xD
Título: Re: ejercicio en C Publicado por: leosansan en 31 Octubre 2012, 13:49 pm donde has aprendido esto por ejemplo? podrias recomendarme algun libro o web que no sea de iniciacion en C sino que profundice mas? Citar Pero no hay color rir nos lleva mucho, mucho de ventaja. Es un fenómeno en el conocimiento y manejo de comandos y librerías. siempre que postea algo es algo para estudiar y aprender. Es toda una fortuna contar con sus aportaciones. Saludos!. Título: Re: ejercicio en C Publicado por: rir3760 en 1 Noviembre 2012, 18:49 pm podrias recomendarme algun libro o web que no sea de iniciacion en C sino que profundice mas? Si ya manejas bien el lenguaje C dos libros de calidad son "The Standard C Library" de P. J. Plauger y "Algorithms in C" de Robert Sedgewick, el primero sobre la biblioteca estándar de C y el segundo sobre algoritmos (búsqueda, ordenación, grafos, etc.).Pero, va de nuevo la advertencia: no son libros para principiantes. Otro muy bueno para un nivel de principiante/intermedio es "Pointers on C", no es un libro solo sobre punteros sino que se le da el énfasis que requieren. Otras de sus ventajas son enseñar el lenguaje según el estándar y cubrir mas temas que "K&R2". Todos ellos, hasta donde tengo entendido, en ingles. Un saludo Título: Re: ejercicio en C Publicado por: BatchianoISpyxolo en 1 Noviembre 2012, 22:07 pm Bueno aquí te dejo este pdf de mi facultad:
http://www.dc.fi.udc.es/~so-grado/CursoC.pdf No es gran cosa, pero hay algún que otro tema bastante interesante como punteros y arrays multidimensionales, y está en español. Eso sí es para iniciarse. Título: Re: ejercicio en C Publicado por: xiruko en 2 Noviembre 2012, 15:02 pm gracias a los 3 por las recomendaciones, aunque primero probare alguno de los dos libros de rir3760 a ver si puedo seguirlo mas o menos.
un saludo! |