#630 Eso ya lo había probado por si ponía mal la ruta en la consola, le daba a run desde el mismo programa donde escribía el código pero se abre la consola negra con la _ parpadeando. Mañana voy estar en un ordenador diferente, ya os contare si lo consigo jajaja
os quiero preguntar una cosilla, a grandes rasgos, se bastante C o sabía (llevaba mucho tiempo sin tocarlo) pero llevo horas dándole vueltas a una misma cosa y estoy parado en algo que seguramente sea una gilipoyez. Venía a pediros que me echarais una mano (no es urgente ni nada, es por trastear).
Os lo explico un poco por lo alto: quiero hacer un sumador de "Enteros largos" (el), para lo cual voy a meter cada uno de los dígitos del entero (que previamente introduciré por stdin) en strings, quedando cada dígito como un caracter (función char * get_el()).
El problema viene cuando en main() haciendo pruebas creo un array de strings en el cual usando la función get_el() meto 2, el puts me muestra bien el de la segunda posición pero no el de la primera como podeis ver en la consola. ¿porque cojones el segundo si, y el primero no??!?!?!?
gracias y perdonad que me explique como el culo
#632 no crees que nos sería más facil ayudarte si copiases el código en lugar de hacer una captura? yo no soy un genio en C pero podría hacer unas pruebas si tuviese el código a mano xD
Por otro lado te diría que empezases a usar mallocs, eso de hacerte una variable local y devolver el puntero no tiene muy buena pinta.
He estado sin tocarlo desde entonces, y hoy un poco más seriamente me he puesto a corregir chuminadas y a darle un poco más de sentido y legibilidad desde el principio.
#633 No, al final lo he resuelto haciendo lo que me dice #634. La cosa es que pudiera usar el puts() que a fin de cuentas viene a ser un for que recorre el string char por char.
Se quedaría todo tal que así y funcionando:
La etiqueta code se rompe si editas haciendo doble click en el post, utiliza el formulario completo de edición y vuelve a salir bien.
#638 strtok() para partir la frase leida en palabras sueltas, luego iteras por el array de palabras y calculas lo que te piden.
#640
Si no puedes usarla, buscas espacios recorriendo con el for.
Todo char que encuentres antes de un espacio, lo concatenas en un string, y cuando encuentras un espacio, lo metes en el vector, y asi con todas las palabras.
Es lo que se me ocurre si no puedes usar ninguna funcion para partir las cadenas.
Ni caso, si no lo haces como dice el profe cae un 0. Aprende a hacerlo como te dicen por aquí, que fijo es la mejor opción, pero para entregarlo hazlo utilizando lo que diste en clase. Aunque claro, todo depende del profesor, igual le mola que uséis cosas nuevas que hayáis buscado por vuestro cuenta, pero yo no me la jugaría...
#644 es hablarlo. mis profesores siempre han dicho "yo se hacerlo asi, si conseguis hacerlo de otra forma, se evalua igual. lo que busco es que me deis el resultado".
vamos, que te podias buscar la vida como querias, siempre dentro de unos margenes. esto hace que el estudiante quiera o no aprenda a buscar por su propia cuenta y dejar atras la epoca de darle todo mascadito y tragar-tragar para un examen.
A ver, si no quieres hacerlo usando strok, intenta implementar esa funcion. Dado un string y un delimitador " ", que cuente 1 cada vez que encuentra una letra, que comience en 1 y añada 1 cuando encuentre cada delimitador y luego ya tienes todo lo necesario. Palabras, letras por palabra y puedes hacer todo lo que quieras.
Para todo lo demás flex+bison, te haces un autómata LALR(1) y tiras millas xD.
Estaba a punto de dropear la asignatura de Programación y acabo de descubrir este hilo y pinta a salvada de vida xDDDD
Hace poco que dimos los punteros y ahora estoy intentando hacer algunos ejercicios algo tochos. Si encuentro la motivación para terminar de implementarlos probablemente postee alguna duda porque no me aclaro muy bien con el pase de parámetros de una función a otra.
Alguien sabe porque el strcmp me devuelve siempre -1 ? Cuando estoy comparando dos nicks iguales, por ejemplo "Pepito" con "Pepito" me sigue devolviendo -1.
En otras funciones del código me pasa exactamente lo mismo, si comparo con una variable de la struc me devuelve siempre el -1 , pero por ejemplo si comparo dos variables introducidas por pantalla si me funciona y me devuelve 0.
int comparar_nick(char *nuevonick){
struct _usuario *auxiliar;
auxiliar = primerousuario;
while (auxiliar!=NULL) {
if( strcmp(auxiliar->nick,nuevonick) == 0 ) return 1;
auxiliar = auxiliar->siguiente;
}
return 0;
}
EDIT: El problema era que el nuevonick lo estaba leyendo con fgets, lo cambie a gets y listo.
#653 hice los dos primeros capis y me desmotive xD Principalmente porque nadie pasaba de los primeros temas aqui
Coño, acabo de descubrir esto, me quedo por aquí que quiero empezar en la programación y colegas me han recomendado empezar por C.
Buenas a todos,
Con el comienzo del verano y el fin de las clases, me he puesto a darle duro a este curso, y la verdad es que no puedo estar más satisfecho.
Ahora mismo voy por el tema9, con casi todos los ejercicios hechos y espero terminarlo en las próximas semanas.
Grandísimo aporte, muchas gracias.
Primera duda importante que no me deja continuar...
En el ejercicio 2 del tema 9, mediante un fscanf de un string, no consigo que el programa me lea toda la frase que le estoy metiendo, sino simplemente la primera palabra. Por ejemplo, cuando meto la frase "Hola que tal", el programa solo lee "Hola".
Vamos, pienso yo que el error esta en alguna declaración en el fscanf...
Aquí dejo mi ejercicio tal cual.
Muchas gracias
No estoy seguro de que sea eso, pero estas declarando primero unos punteros y luego unos arrays para terminar asignando los arrays al puntero.
No es necesario, si declaras un array, el nombre a secas ya es un puntero a la primera posicion
Vamos, en vez de
char* f1;
char* f2;
char frase1[LONG];
char frase2[LONG];
f1=&frase1[LONG];
f2=&frase2[LONG];
Pon simplemente
char f1[LONG];
char f2[LONG];