Empecé a programar contigo. Hoy en día trabajo en una empresa privada en el sector de sistemas como desarrollador. Y tengo un emprendimiento de desarrollo de software, gracias por todo bro :)
ostia que un vídeo del 2013 me explique mejor que mi maestro de la universidad todo lo de un parcial en 13 minutos me flipado tío, saludos desde México sois fantástico
La verdad me resulta muy practica tu lista, vengo de sec tecnica y vi java + pythom, ahora estoy en la uni arrancando, a pesar de los inconvenientes de este año, y gracias a tus videos voy comprendiendo este lenguaje que es muy parecido a java, como lo dijiste en el primer video; java sale de C
Sin mirar el ejemplo, hice este programa y también funcionó, utilizando las funciones y algunas herramientas de anteriores vídeos: #include void comparar(char frase1[], char frase2[]); int main(){ char frase1 [6]; char frase2 [6]; printf("Introduce frase 1: "); fflush(stdin); fgets(frase1, 6 ,stdin); printf("Introduce frase 2: "); fflush(stdin); fgets(frase2, 6 ,stdin); comparar(frase1, frase2); printf("
"); system("pause"); return 0; } void comparar(char frase1[], char frase2[]){ int i,aux; aux = 0; for(i=0; i
Si vas a entrar en una carrera donde vas a estudiar programación, con los videos que puedes encontrar en este canal podras completar parte de la programación del primer y segundo año practicamente sin esfuerzo, asi que animo!
Están excelentemente explicados los temas. Me gustaría que en algún vídeo se explique la recursividad en funciones y cómo utilizar punteros con matrices de orden del tipo matriz[5][8][7] por ejemplo. Saludos y gracias por los tutoriales
he aqui un humano con corazon en la enseñanza, gracias humano tus conocimientos son de mucha utilidad a otro humano como yo :) pd: me saco el sombrero ante ti gran humano jaja
¿El caracter nulo es una O y no es un cero? ¿Podías decirme cuál es el motivo por el que has utilizado el ampersand (&) en scanf delante de vector, siendo este "una dirección de memoria" (o puntero al comienzo del vector/string)?
Hola emilio, una pregunta, porque dices que el if (c1==c2) es de lo peor? yo lo hice así y no compila, pero luego hice el if así : if (c1[5]==c2[5]) y ya funcionó, no se mucho de C pero es estrictamente necesario usar la libreria ?? digo se que es util, pero estrictamente necesario? o con lo que yo hice tambien funciona?
Si hay una librería que te da algo que ya esta hecho, es mejor usarlo, en programación reinventar la rueda una y otra vez, es una tontería e induce a errores. Un saludo.
una pregunta: como hago para darle valor a un string ej: tengo char acc2[21] (quiero que el maximo sea 20 caracteres) acc2 es una variable char... la cree, y para ponerle valor a un vector era (en este caso acc2) acc2 = {1,2,3,4}. pero cuando pongo char me salen errores. de todos modos te paso lo que tengo hecho hasta ahora: #include #include int main(){ char acc1[21]; char acc2[21] = { char pass1[21]; char pass2[21];//esta no la use todavia. 0 importancia printf("Introduzca el usuario. "); fgets(acc1,21,stdin); printf("Introduzca la clave. "); fflush (stdin); fgets(pass1,21,stdin); if(strcmp(acc1,acc2) == 0){ printf("correcto")//aca meteria el otro if para verificar la clave }//aca meteria else usuario incorrecto //"system pause return 0; lo pongo al final, no hay drama } falta terminar porque me salto este problema, como abras observado quiero hacer un sistema de cuentas donde una la indico yo (HOLA) y la otra la escanea, si son iguales, quiere decir que se sabe el usuario.. y posteriormente hacer lo mismo con la contraseña. PD: espero haberme expresado bien, sigue con tus videos y por ese buen camino, explicas de 10. Un abrazo enorme desde argentina y, por sierto, Feliz año nuevo, pasala de lujo ;)
hola ,podrias volver a pasar el pdf de funciones de la libreria porque no me deja desde el link.porfa saludos desde argentina.explicas super claro ,gracias.
Por favor podrías resolver una duda que tengo acerca de este programa? Yo programo en el gedit de Linux. Tengo el código igual que tú, de hecho al compilar no me da ningún error. El problema viene cuando al ejecutar el programa solo me deja introducir una frase de las 2 y ya directamente me dice que no son iguales. Sin embargo, si cambio fgets por gets, si que me funciona. Si me pudieras ayudar. Muchas gracias.
hola, e visto los vídeos y la verdad intento hacer los ejercicios antes de que los hagas, me gustaría que si pudieras proporcionar mas ejercicios para practicar estaría muy bien gracias o una pagina donde pueda conseguir ejercicios
En los primeros bloques proporciono una lista de ejercicios, los que yo hacia en la universidad para aprender C, búscalo en la descripción de los vídeos, así de memoria creo que en el vídeo 2.1 o 2.2 puede que este la lista. Un saludo.
Que opinas sobre el metodo con scanf q es asi: scanf(" %[^ ]",&ejemplo); Lo he utilizado y a simple vista funciona de maravilla, pero no estoy seguro con respecto a su funcionalidad en otros ambientes y su eficiencia
buenas, en el ejercicio de comparar strings no me ejecuta el programa bien y es porque no me funciona el fflush, es como si no estuviera, que tengo que hacer??
Muchas gracias por los tutoriales. Pero porfavor sacame de una duda, he experimentado de todo para intentar dar con el fallo pero no lo he logrado. Primero e seguido todos los paso desde el primer video hasta este y mi fallo se da igual es que al comparar los dos strings entre (jo y hola) la variable que almacena este valor me da 1 como si string 1 fuese mayor a string2 pero no es asi puesto que string2=hola tiene mas palabras y deberia salir -1. Espero me puedas ayudar y muchas gracias de antemano. * Ejercicio en el que vamos a comparar dos cadenas de caracteres*/ #include #include int main() { char cadena1[20]; char cadena2[20]; int x;
printf("Ingresar la 1era Cadena de Caracteres:"); fgets(cadena1,20,stdin); printf("Ingresar la 2da Cadena de Caracteres:"); fflush(stdin); //Simplemente Limpiamos el buffer de stdin fgets(cadena2,20,stdin);
tiwar87 Y te podrías volver loco tratando de buscar el fallo y nunca encontrarlo, porque eso esta mal... En el PDF de Strings que deje en la descripción, mira como funciona la función strcmp y ahí esta la respuesta. Te diré el fallo, la funcion strcmp devuelve un valor menor que cero (NO -1, sino un valor menor que cero que no sabemos cuanto sera) si la cadena1 es menor que la cadena2, un numero MAYOR si es al contrario (que tampoco 1 como tu pones, sino un numero mayor que cero...) y cero si son iguales. En tu case 1 solo se utilizaría si la cadena cadena1 es un unico carácter mayor que la cadena2. En el futuro leete la documentación de las funciones que uses, porque en este caso lo habrías sacado en solo 1 segundo y no estaré yo siempre ahí para ayudarte (hoy me has cogido con algo de tiempo). Yo personalmente, no me se de memoria como funcionan todas la funciones, miro la documentación y listo :D. Un saludo.
Empieza A Programar Antes que nada muchas gracias por haberte tomado en responder y por otra parte solo quiero decirte que si lo he leido y es mas al depurar el programa si obtuve o -1, 0 o 1 en los casos respectivos que ya hemos estudiado pero lo que no entiendo y sigo sin entender es porque me devolvio un +1 cuando cadena1 era menor que cadena2. Probe con otros valores y la respuesta era a veces correcta y otras incorrectas pero no entiendo su mal funcionamiento con strcmp en caso de no querer solamente un 0 cuando son iguales. De todas formas muchas gracias por tu tiempo y compartir los cursos
Tengo una duda, o más bien un problema, según veo ese metodo no funciona con un vector predefinido. Como tal yo tengo 2 vectores; char v1[10]; char v2[26]={'a', 'b', 'c'...'z'}, este tiene a dentro todas las letras del alfabeto, y mi problema es que si coloco: strcmp(v1[i],v2[¡])==0), no me funciona para comparar el contenido de ambos vectores. ¿Ahí que hago?
hola me puedes colaborar con este problema, es que al hacer las comparaciones siempre lanza que los strings no son iguales ... aunque lo sean ... mira la linea de codigo /* strings * los strings son la forma que se tiene en informatica para almacenar frases ; - este aprenderemos como introducir fraces en un strings ; o cadena de carateres; */ # include int main (){ char vector[13]; /// aqui tenemos un strings ;..: hola que tal; todos los strings deben ter minar con "\0" este caracter se cuenta como uno por ende para un string se debe colocar con un espacio de mas es decir en ves de 12 13 printf ("Introduce una frase: "); //scanf ("%s",&vector); // la ese es por que estamos recogiendo un string; // scanf tiene un defecto que recoge hasta que llega al espacio es decir que si ponemos por ejemplo "Hola que" ... recogeria nada mas "hola"; //gets (vector); // esta es otra forma de recoger los datos ; // este tiene un gigantesco problema ... y es que sobreescribe espacios de memoria que no lo corresponden; fgets(vector,13,stdin); // le indicamos elo tamaño maximo de nuestro string ; y el stdin esto es estandar input "el teclado" // este es el metodo mas recomendable debido a que no tiene problemas ;
Hola, tengo un problema. El devc++ me compila lo mas bien (el programa es ingresar la cadena y mostrarla) pero no me deja ejecutarlo, se uqeda como esperando y me tira este error: id returned 1 exit status
se me ha ocurrido usar esta simple comparacion para ver si usando punteros puedo comparar strings con un if y efectivamente funciona, lo unico que me resulta confuso es que si pongo una palabra , como por ejemplo (hola) en un string y la misma palabra seguida de un espacio es decir (hola ) piensan que son lo mismo, sin embargo este problema no ocurre si el espacio se encuentra al inicio es decir ( hola) . esto me resulta confuso . os dejo el codigo por si alguien le sirve: if (*s1 == *s2){ printf("igual");
Hola, yo lo copile en Xcode y no da :c al momento de escribir la segunda frase, se ejecuta por si solo y pues termina con que no son iguales... ¿A que se debe?
Me gustarái si pudieran explicar como una string, por ejemplo de 10 caracteres, le quiero cambiar los 4 de medio, por otro grupo de caracteres. Gracias
de poder hacerse se puede, es mas, seria un ejercicio, el tema es que ni idea la verdad, si te pones a pensar, en un momento la sacas. de eso se trata programar
mira tengo una duda, antes que nada este es el codigo: #include int main(){ char hola[13]; char hola2[10]; printf("Introduce tu nombre: "); fgets(hola,13,stdin); printf("Introduce tu apellido: "); fgets(hola2,10,stdin); printf("Bienvenido %s %s!",hola,hola2); system ("pause"); return 0; } lo que pasa es que en el printf entre el nombre y el apellido me deja un salto de linea y ya probe con el fflush y no me anda
Tengo un inconveniente, le pongo el usuario bien y me dice que es incorrecto, parece que hay un problema con la comparación, si me puedes ayudar te lo agradecería. #include #include int identificar (int a); int usuario (int a); int password (int a); int main (){ int a; a = identificar (a); if (a == 1){ printf ("USUARIO IDENTIFICADO CORRECTAMENTE!!"); }
system ("pause"); return 0; } int identificar (int a){ a = usuario (a); if (a == 1){ a = password (a); } else { printf (" ESE USUARIO NO EXISTE
"); } return a; } int usuario (int a){ char user[13]; a = 0; printf (" INTRODUCE UN USUARIO: "); fgets (user,13,stdin); if (strcmp(user,"TukaPlay") == 0){ a = 1; } else { a = 2; } printf (" user es igual a %i
",a); printf (" user es igual a %s
",user); return a; } int password (int a){ char pass[13]; a = 0; printf (" INTRODUCE UN PASSWORD: "); fgets (pass,13,stdin); if (strcmp(pass,"1114") == 0){ a = 1; } else { a = 2; } return a; }
Buenas. Otra opción con strcmp sería (así es como me lo piden en la uni, en el manual de estilo): resul = strcmp(c1, c2); if(resul == 0){ printf("Los dos Strings son iguales "); }else{ printf("Los dos Strings NO son iguales"); }
###################Por favor tomate tu tiempo para leer esto############################ porque en contra si te beneficiaria montar tu curso en un solo link, solo le pones a cortadores de publicidad y listo ganas un tanto por ciento de tus vídeo, pero si lo tuyo es dejar tu vídeo en youtube por todos los años para ganar algo que importa todo bien solo quería eso porque como el Internet que yo "ROBO" no es mio y pretendo estudia programación yo descargo todo lo que puedo para así verlo en mi PC cuando cambien la clave de wifi, pero si supiera que ya voy por el bloque 7.3 de tu vídeo, ya descargue casi todo me falta poco voy por el Bloque 7.3 y hasta el momento todos tus vídeo pesan 880 MB a 720 HD, pero bueno de todo modo gracias por tomar tu tiempo en hacer estos vídeo, y lastima que los link no sirven
Antes de escribir que tienes un error, deberías de revisar y de verte todos los vídeos completamente, porque este error lo explico en el segundo vídeo. th-cam.com/video/E2sXLUoChME/w-d-xo.html Un saludo.
Yo hice una prueba utilizando el contenido de la memoria y sin usar la biblioteca string.h y si permite la comparación de string mando el ejemplo: // String #include // #include int main () { char c[10] = {'a','b','c','d','e','f','g','h','i','j'}; char b[10]; char a[10]; int i; printf("mete el String a : "); // scanf("%s",&a); // gets (a); fgets(a,10,stdin); printf("string a: %s ",a); fflush(stdin); printf("mete el String b : "); fgets(b,10,stdin); printf("string b: %s ",b); if (*a == *b){ // con los String se pregunta por el contenido de la memoria printf("son iguales "); } else { printf("No son iguales "); } for (i = 0; i < 10; i++){ printf("arreglo st : %c. ",c[i]);// *(c+i) } system("pause"); return 0; }
+Juan Carlos Muñoz Villegas Excelente, forma de resolverlo, los string son vectores y los vectores no es mas que una variable que apunta a varios espacios de memoria es como un conjunto de punteros por eso para pasarlos de funcion en funcion no se necesita el paso por referencia. saludos
EN EL ULTIMO EJEMPLO, AL COMPARAR LOS STRING, SI PONES PRIMER STRING: HOLA MUNDO. SEGUNDO STRING: HOLA. TE DICE QUE SON IGUALES. UN DETALLE CON EL FGETS. FUERA DE ESO EXCELENTE..
+Andres Alc Aun estudio, concretamente en la Universidad de Cádiz el Grado de Ingeniería Informática. Actualmente estoy en el último curso (aunque tengo una asignatura de 2º que espero aprobar este año ^^U), si estudias por aqui se aceptan invitaciones a cerveza. Un saludo.
Tengo un Bug!!!!! #include #include #include int main () { char c1[5]; char c2[5]; printf("introduce frase: "); fgets(c1,5,stdin); printf("introduce la segunda frase "); fgets(c2,5,stdin); if(strcmp(c1,c2)== 0){ printf("los 2 string son iguales "); } else{ printf("los 2 string no son iguales "); } } si hago como lo dices tu no me deja escribir la segunda frase : resultado: ~/workspace/programming/initials/ $ make ej clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow ej.c -lcrypt -lcs50 -lm -o ej ~/workspace/programming/initials/ $ ./ej introduce frase: hola introduce la segunda frase los 2 string no son iguales
me compila, pero no ejecuta correctamente "main.c: In function 'main': main.c:22:9: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration] system ("pause"); ^ sh-4.3$ main Introduce una frase; casa Introduce la segunda frase: Los dos strings No son iguales.
Aqui esta el mismo archivo que lo pase a Word y lo modifique para ocupar mejor la hoja para imprimir. Saludos . www.mediafire.com/file/8l3xq1jd2d2epny/String.docx/file
Si, ten en cuenta que C es de los primeros lenguajes en alto nivel y que fue creado en los 60? Java ha mejorado muchisimas cosas de C y C++, ya en C++ se puede usar la clase string sin tener que liarse tanto, pero todo esto es hablar por hablar!! Hay que aprender desde abajo para poder llegar alto!! Y Java, C++, Python y muchos otros lenguajes se basan en C, por lo que aprender C es como aprender parte de muchisimos lenguajes de programacion! Asi que es muy importante. Un saludo.
windowsluxury C es la base de C++, en un futuro enseñare C++ y tambien estoy enseñando Java en este momento en otra lista de reproduccion, si no te gusta C puedes pasarte a Java. La gracia de todo esto es preparar la mente para la programacion, por eso C es el mejor lenguaje para empezar, porque no hace nada solo, todo tienes que hacerlo tu y te ayuda a pensar mucho y a marcarte estrategias para conseguir tu objetivo. Ademas, comenzar programando orientado a objetos es algo realmente complejo y hace abandonar a muchisimas personas en los primeros intentos. Un saludo.
Empecé a programar contigo. Hoy en día trabajo en una empresa privada en el sector de sistemas como desarrollador. Y tengo un emprendimiento de desarrollo de software, gracias por todo bro :)
Espero que te vaya realmente bien! Animo y a seguir emprendiendo y aprendiendo.
ostia que un vídeo del 2013 me explique mejor que mi maestro de la universidad todo lo de un parcial en 13 minutos me flipado tío, saludos desde México sois fantástico
jajajajaj que mexicano mas español
La verdad me resulta muy practica tu lista, vengo de sec tecnica y vi java + pythom, ahora estoy en la uni arrancando, a pesar de los inconvenientes de este año, y gracias a tus videos voy comprendiendo este lenguaje que es muy parecido a java, como lo dijiste en el primer video; java sale de C
Explicas super bien.
Sin mirar el ejemplo, hice este programa y también funcionó, utilizando las funciones y algunas herramientas de anteriores vídeos:
#include
void comparar(char frase1[], char frase2[]);
int main(){
char frase1 [6];
char frase2 [6];
printf("Introduce frase 1: ");
fflush(stdin);
fgets(frase1, 6 ,stdin);
printf("Introduce frase 2: ");
fflush(stdin);
fgets(frase2, 6 ,stdin);
comparar(frase1, frase2);
printf("
");
system("pause");
return 0;
}
void comparar(char frase1[], char frase2[]){
int i,aux;
aux = 0;
for(i=0; i
Muy bien señor, me ha salvado la vida entera como la cinta americana
Mejor explicado imposible, muchas gracias
Muchísimas gracias por este tipo de videos! Estoy por entrar en la uni y me sirve de apoyo.
Si vas a entrar en una carrera donde vas a estudiar programación, con los videos que puedes encontrar en este canal podras completar parte de la programación del primer y segundo año practicamente sin esfuerzo, asi que animo!
@@EmpiezaAProgramar muchísimas gracias nuevamente 💪
Que grande maestro!!! Gracias a estos videos voy entendiendo cada vez mas.
Muchas gracias por la guía sobre los strings.
Oye comparteme el archivo pdf porfavor
Acabas de salvar mi tarea XDDDDDDD y desde el 2013, todo un capo. like y sub.
Buenísima explicación! ahora puedo continuar con mi proyecto jajajaja
En este video vi una muestra de lo cuidadoso que hay que ser con los lenguajes de bajo nivel. Gracias !
Me encantan tus vídeos, de verdad que me ayudan mucho❤!!Gracias
+Malaga Abello De nada hombre, pero te los tienes que ver en orden xD!
Están excelentemente explicados los temas. Me gustaría que en algún vídeo se explique la recursividad en funciones y cómo utilizar punteros con matrices de orden del tipo matriz[5][8][7] por ejemplo.
Saludos y gracias por los tutoriales
he aqui un humano con corazon en la enseñanza, gracias humano tus conocimientos son de mucha utilidad a otro humano como yo :)
pd: me saco el sombrero ante ti gran humano jaja
HOLA LA VERDAD QUE SOS UN GENIO EXPLICANDO!! TE PUEDO PEDIR QUE VUELVAS A SUBIR EL ARCHIVO DE FUNCIONES PORFA!!
SALUDOS DESDE ARGENTINA
ya ves yo tambien me gustaria tenerlo hehe igualmente estoy comprando libros de programacion e imagino eso contrarestara la falta
Muy bueno, no sabía que el == en este caso comparaba las direcciones en memoria.
Gracias por el tip,
en que video explicas lo de fflush??
para repasarlo. porfavor
felicidades!
Gracias por el PDF con las funciones del String.h! :)
Comparteme el pdf porfavooor
gracias por esplicarme las funciones fgets, fgetch, fgetche!, sabia que estavan por aqui!!!
Videazo.
Eres buenísimo
Hola. El curso es muy bueno. Seria posible que resubieras el archivo pdf con las funciones de la libreria string?
¿El caracter nulo es una O y no es un cero? ¿Podías decirme cuál es el motivo por el que has utilizado el ampersand (&) en scanf delante de vector, siendo este "una dirección de memoria" (o puntero al comienzo del vector/string)?
a mi me funciona bien gets, sigo sin enteder cual es su problema. saludos me encantan tus videos me son muy utiles!!
Hola emilio, una pregunta, porque dices que el if (c1==c2) es de lo peor? yo lo hice así y no compila, pero luego hice el if así : if (c1[5]==c2[5]) y ya funcionó, no se mucho de C pero es estrictamente necesario usar la libreria ?? digo se que es util, pero estrictamente necesario? o con lo que yo hice tambien funciona?
Si hay una librería que te da algo que ya esta hecho, es mejor usarlo, en programación reinventar la rueda una y otra vez, es una tontería e induce a errores.
Un saludo.
Muy util y muy bien explicado Emilio!!! Gracias. Vas a colgar mas videos profundizando un poco mas en ciertos aspectos?
Vas por el bloque 5.5, hay vídeos hasta el bloque 8, mira la lista de reproducción.
una pregunta: como hago para darle valor a un string ej:
tengo char acc2[21] (quiero que el maximo sea 20 caracteres) acc2 es una variable char... la cree, y para ponerle valor a un vector era (en este caso acc2)
acc2 = {1,2,3,4}.
pero cuando pongo char me salen errores.
de todos modos te paso lo que tengo hecho hasta ahora:
#include
#include
int main(){
char acc1[21];
char acc2[21] = {
char pass1[21];
char pass2[21];//esta no la use todavia. 0 importancia
printf("Introduzca el usuario.
");
fgets(acc1,21,stdin);
printf("Introduzca la clave.
");
fflush (stdin);
fgets(pass1,21,stdin);
if(strcmp(acc1,acc2) == 0){
printf("correcto")//aca meteria el otro if para verificar la clave
}//aca meteria else usuario incorrecto
//"system pause return 0; lo pongo al final, no hay drama
}
falta terminar porque me salto este problema, como abras observado quiero hacer un sistema de cuentas donde una la indico yo (HOLA) y la otra la escanea, si son iguales, quiere decir que se sabe el usuario.. y posteriormente hacer lo mismo con la contraseña.
PD: espero haberme expresado bien, sigue con tus videos y por ese buen camino, explicas de 10. Un abrazo enorme desde argentina y, por sierto, Feliz año nuevo, pasala de lujo ;)
Hola son muy buenos tus videos, tengo una duda estoy usando sublime en linux mint y la funcion fflush(stdin); no me funciona sabes porque puede ser?
Hubiera visto este video y me hubiera ahorrado 2 horas probando diferentes metodos para comparar esos strings xd, al menos ya no se me olvidará c:
hola ,podrias volver a pasar el pdf de funciones de la libreria porque no me deja desde el link.porfa saludos desde argentina.explicas super claro ,gracias.
Se puede usar esta función para ordenar de forma alfabética?
Por favor podrías resolver una duda que tengo acerca de este programa?
Yo programo en el gedit de Linux.
Tengo el código igual que tú, de hecho al compilar no me da ningún error.
El problema viene cuando al ejecutar el programa solo me deja introducir una frase de las 2 y ya directamente me dice que no son iguales.
Sin embargo, si cambio fgets por gets, si que me funciona. Si me pudieras ayudar.
Muchas gracias.
Oh por dios en la universidad te dieron un pdf en comic sans!!!
hola, e visto los vídeos y la verdad intento hacer los ejercicios antes de que los hagas, me gustaría que si pudieras proporcionar mas ejercicios para practicar estaría muy bien gracias o una pagina donde pueda conseguir ejercicios
En los primeros bloques proporciono una lista de ejercicios, los que yo hacia en la universidad para aprender C, búscalo en la descripción de los vídeos, así de memoria creo que en el vídeo 2.1 o 2.2 puede que este la lista.
Un saludo.
Gracias CAPOOOO
Que opinas sobre el metodo con scanf q es asi: scanf(" %[^
]",&ejemplo);
Lo he utilizado y a simple vista funciona de maravilla, pero no estoy seguro con respecto a su funcionalidad en otros ambientes y su eficiencia
buenas, en el ejercicio de comparar strings no me ejecuta el programa bien y es porque no me funciona el fflush, es como si no estuviera, que tengo que hacer??
Muchas gracias por los tutoriales. Pero porfavor sacame de una duda, he experimentado de todo para intentar dar con el fallo pero no lo he logrado. Primero e seguido todos los paso desde el primer video hasta este y mi fallo se da igual es que al comparar los dos strings entre (jo y hola) la variable que almacena este valor me da 1 como si string 1 fuese mayor a string2 pero no es asi puesto que string2=hola tiene mas palabras y deberia salir -1. Espero me puedas ayudar y muchas gracias de antemano.
* Ejercicio en el que vamos a comparar dos cadenas de caracteres*/
#include
#include
int main() {
char cadena1[20];
char cadena2[20];
int x;
printf("Ingresar la 1era Cadena de Caracteres:");
fgets(cadena1,20,stdin);
printf("Ingresar la 2da Cadena de Caracteres:");
fflush(stdin); //Simplemente Limpiamos el buffer de stdin
fgets(cadena2,20,stdin);
x=strcmp(cadena1,cadena2);
switch(x){
case 0: {
printf("Cadena1 = Cadena2");
break;
}
case 1: {
printf("Cadena1 > Cadena2");
break;
}
default: {
printf("Cadena1 < Cadena2"); break;
break;
}
}
}
tiwar87 Y te podrías volver loco tratando de buscar el fallo y nunca encontrarlo, porque eso esta mal...
En el PDF de Strings que deje en la descripción, mira como funciona la función strcmp y ahí esta la respuesta.
Te diré el fallo, la funcion strcmp devuelve un valor menor que cero (NO -1, sino un valor menor que cero que no sabemos cuanto sera) si la cadena1 es menor que la cadena2, un numero MAYOR si es al contrario (que tampoco 1 como tu pones, sino un numero mayor que cero...) y cero si son iguales. En tu case 1 solo se utilizaría si la cadena cadena1 es un unico carácter mayor que la cadena2.
En el futuro leete la documentación de las funciones que uses, porque en este caso lo habrías sacado en solo 1 segundo y no estaré yo siempre ahí para ayudarte (hoy me has cogido con algo de tiempo). Yo personalmente, no me se de memoria como funcionan todas la funciones, miro la documentación y listo :D.
Un saludo.
Empieza A Programar Antes que nada muchas gracias por haberte tomado en responder y por otra parte solo quiero decirte que si lo he leido y es mas al depurar el programa si obtuve o -1, 0 o 1 en los casos respectivos que ya hemos estudiado pero lo que no entiendo y sigo sin entender es porque me devolvio un +1 cuando cadena1 era menor que cadena2. Probe con otros valores y la respuesta era a veces correcta y otras incorrectas pero no entiendo su mal funcionamiento con strcmp en caso de no querer solamente un 0 cuando son iguales. De todas formas muchas gracias por tu tiempo y compartir los cursos
Tengo una duda, o más bien un problema, según veo ese metodo no funciona con un vector predefinido.
Como tal yo tengo 2 vectores;
char v1[10];
char v2[26]={'a', 'b', 'c'...'z'}, este tiene a dentro todas las letras del alfabeto, y mi problema es que si coloco: strcmp(v1[i],v2[¡])==0), no me funciona para comparar el contenido de ambos vectores.
¿Ahí que hago?
hola me puedes colaborar con este problema, es que al hacer las comparaciones siempre lanza que los strings no son iguales ... aunque lo sean ... mira la linea de codigo
/* strings
* los strings son la forma que se tiene en informatica para almacenar frases ;
- este aprenderemos como introducir fraces en un strings ; o cadena de carateres;
*/
# include
int main (){
char vector[13]; /// aqui tenemos un strings ;..: hola que tal; todos los strings deben ter minar con "\0" este caracter se cuenta como uno por ende para un string se debe colocar con un espacio de mas es decir en ves de 12 13
printf ("Introduce una frase: ");
//scanf ("%s",&vector); // la ese es por que estamos recogiendo un string; // scanf tiene un defecto que recoge hasta que llega al espacio es decir que si ponemos por ejemplo "Hola que" ... recogeria nada mas "hola";
//gets (vector); // esta es otra forma de recoger los datos ; // este tiene un gigantesco problema ... y es que sobreescribe espacios de memoria que no lo corresponden;
fgets(vector,13,stdin); // le indicamos elo tamaño maximo de nuestro string ; y el stdin esto es estandar input "el teclado" // este es el metodo mas recomendable debido a que no tiene problemas ;
printf ("%s
",vector);
system ("pause");
return 0;
}
Hola, tengo un problema. El devc++ me compila lo mas bien (el programa es ingresar la cadena y mostrarla) pero no me deja ejecutarlo, se uqeda como esperando y me tira este error: id returned 1 exit status
por que cuando utilizo gets me sale : implicit declaration of function 'gets' is invalid in C99
se me ha ocurrido usar esta simple comparacion para ver si usando punteros puedo comparar strings con un if y efectivamente funciona, lo unico que me resulta confuso es que si pongo una palabra , como por ejemplo (hola) en un string y la misma palabra seguida de un espacio es decir (hola ) piensan que son lo mismo, sin embargo este problema no ocurre si el espacio se encuentra al inicio es decir ( hola) . esto me resulta confuso . os dejo el codigo por si alguien le sirve:
if (*s1 == *s2){
printf("igual");
} else{
printf("distinto");
}
Hola, yo lo copile en Xcode y no da :c
al momento de escribir la segunda frase, se ejecuta por si solo y pues termina con que no son iguales...
¿A que se debe?
Me gustarái si pudieran explicar como una string, por ejemplo de 10 caracteres, le quiero cambiar los 4 de medio, por otro grupo de caracteres. Gracias
de poder hacerse se puede, es mas, seria un ejercicio, el tema es que ni idea la verdad, si te pones a pensar, en un momento la sacas. de eso se trata programar
Como es la univerisada tu tambien estas estudiando ingenieria informatica?
mira tengo una duda, antes que nada este es el codigo:
#include
int main(){
char hola[13];
char hola2[10];
printf("Introduce tu nombre: ");
fgets(hola,13,stdin);
printf("Introduce tu apellido: ");
fgets(hola2,10,stdin);
printf("Bienvenido %s %s!",hola,hola2);
system ("pause");
return 0;
}
lo que pasa es que en el printf entre el nombre y el apellido me deja un salto de linea y ya probe con el fflush y no me anda
#include
int main(){
char hola[13];
char hola2[10];
printf("Introduce tu nombre: ");
scanf ("%s",&hola);
printf("Introduce tu apellido: ");
scanf("%s",&hola2);
printf("
Bienvenido %s %s!
",hola,hola2);
system ("pause");
return 0;
}
amigo pero tengo entendido que al introducir un string no es necesario agregar el aspersan en la función scaf.es cierto?
si, estas en lo cierto
perdona en clase estamos haciendo cadenas de caracteres pero no usamos los strings, sabes como buscar informacion o podrias poner ejemplos?
+david artero Mirate los videos antes de preguntar.
Un saludo.
+david artero makina mira los videos topoooo
Tengo un inconveniente, le pongo el usuario bien y me dice que es incorrecto, parece que hay un problema con la comparación, si me puedes ayudar te lo agradecería.
#include
#include
int identificar (int a);
int usuario (int a);
int password (int a);
int main (){
int a;
a = identificar (a);
if (a == 1){
printf ("USUARIO IDENTIFICADO CORRECTAMENTE!!");
}
system ("pause");
return 0;
}
int identificar (int a){
a = usuario (a);
if (a == 1){
a = password (a);
}
else {
printf ("
ESE USUARIO NO EXISTE
");
}
return a;
}
int usuario (int a){
char user[13];
a = 0;
printf ("
INTRODUCE UN USUARIO: ");
fgets (user,13,stdin);
if (strcmp(user,"TukaPlay") == 0){
a = 1;
}
else {
a = 2;
}
printf ("
user es igual a %i
",a);
printf ("
user es igual a %s
",user);
return a;
}
int password (int a){
char pass[13];
a = 0;
printf ("
INTRODUCE UN PASSWORD: ");
fgets (pass,13,stdin);
if (strcmp(pass,"1114") == 0){
a = 1;
}
else {
a = 2;
}
return a;
}
Y no valdría poner if(c1[5] == c2[5]) ? Yo lo había puesto así y si que me comparaba
es justo lo que yo hice, le deje el mensaje mas arriba brot, esperemos que responde emilio,
Para comparar se usa variable = strcmp(char1,char2);
Saludos
Es valida la comparacion de strings elemento a elemento, lo que no se puede es comparar todo de una.
puedes explicar string con funciones , lo intente como venias haciendolo con int, float etc pero no me da error :(
Buenas. Otra opción con strcmp sería (así es como me lo piden en la uni, en el manual de estilo):
resul = strcmp(c1, c2);
if(resul == 0){
printf("Los dos Strings son iguales
");
}else{
printf("Los dos Strings NO son iguales");
}
Hola. Los Strings en Java funcionan de la misma manera que en C. No se pueden comparar con == :)
En Java si que se pueden comparar con ==, aunque tiene sus particularidades.
Un saludo.
Y como le hago para strings en una matriz?
Yo sufriendo porque codeblocks no me ejecuta el gets y ya vi porque, en linux ni te permite ejecutarla debido a que no es una funcion segura. Saludos
En Mac te deja pero te avisa que el programa utiliza gets y no es segura XD
Tu no enseñas listas, pilas y colas ?
Ojala pudieras comprimir los archivo de vídeo en uno solo para así poder descargarlos
Eso va totalmente en contra de lo que pretendo conseguir.
###################Por favor tomate tu tiempo para leer esto############################
porque en contra si te beneficiaria montar tu curso en un solo link, solo le pones a cortadores de publicidad y listo ganas un tanto por ciento de tus vídeo, pero si lo tuyo es dejar tu vídeo en youtube por todos los años para ganar algo que importa todo bien solo quería eso porque como el Internet que yo "ROBO" no es mio y pretendo estudia programación yo descargo todo lo que puedo para así verlo en mi PC cuando cambien la clave de wifi, pero si supiera que ya voy por el bloque 7.3 de tu vídeo, ya descargue casi todo me falta poco voy por el Bloque 7.3 y hasta el momento todos tus vídeo pesan 880 MB a 720 HD, pero bueno de todo modo gracias por tomar tu tiempo en hacer estos vídeo, y lastima que los link no sirven
a q se refiere con los archivos de video?? se puede descargar el codigo??
en donde se explica lo de fflush()
Exacto. Me gustaría saber en qué video se ve eso, porque me estoy viendo todos los videos, exceptuando los que hablan de punteros.
EL problema que tengo es que me lee 3 letras nomas y me cuesta saber porque no me lee 4 letras , esto para linux , alguien sabe porque ?
tengo un error con el fgets(vector,13,stdin); [error] Id returned 1 exit status
Antes de escribir que tienes un error, deberías de revisar y de verte todos los vídeos completamente, porque este error lo explico en el segundo vídeo.
th-cam.com/video/E2sXLUoChME/w-d-xo.html
Un saludo.
Gracias, ya resolví ! Solo cree otro archivo fuente y funciono
Te deberias de ver los videos para ver el porque de las cosas.
Los he visto todos, pero me falto ese y estoy seguro que estaba en .C y no en .cpp
Y gracias por los vídeos, están súper bien explicados !
Yo hice una prueba utilizando el contenido de la memoria y sin usar la biblioteca string.h y si permite la comparación de string mando el ejemplo: // String
#include
// #include
int main () {
char c[10] = {'a','b','c','d','e','f','g','h','i','j'};
char b[10];
char a[10];
int i;
printf("mete el String a : ");
// scanf("%s",&a);
// gets (a);
fgets(a,10,stdin);
printf("string a: %s
",a);
fflush(stdin);
printf("mete el String b : ");
fgets(b,10,stdin);
printf("string b: %s
",b);
if (*a == *b){ // con los String se pregunta por el contenido de la memoria
printf("son iguales
");
}
else {
printf("No son iguales
");
}
for (i = 0; i < 10; i++){
printf("arreglo st : %c.
",c[i]);// *(c+i)
}
system("pause");
return 0;
}
+Juan Carlos Muñoz Villegas Excelente, forma de resolverlo, los string son vectores y los vectores no es mas que una variable que apunta a varios espacios de memoria es como un conjunto de punteros por eso para pasarlos de funcion en funcion no se necesita el paso por referencia. saludos
EN EL ULTIMO EJEMPLO, AL COMPARAR LOS STRING, SI PONES
PRIMER STRING: HOLA MUNDO.
SEGUNDO STRING: HOLA.
TE DICE QUE SON IGUALES.
UN DETALLE CON EL FGETS.
FUERA DE ESO EXCELENTE..
DEJA DE DECIR MAMADAS
¿En que universidad estudiaste?
+Andres Alc Aun estudio, concretamente en la Universidad de Cádiz el Grado de Ingeniería Informática. Actualmente estoy en el último curso (aunque tengo una asignatura de 2º que espero aprobar este año ^^U), si estudias por aqui se aceptan invitaciones a cerveza.
Un saludo.
+Empieza A Programar Yo ahora mismo estoy en primero en la UCA xDDDD Me están sirviendo mucho tus tutoriales, muchas gracias :3
WolfZombified En tal caso me debes unas pocas de cervezas :D.
+Empieza A Programar Eres la razón por la cual ni me han visto el pelo en IP, te debo jarras de cerveza
ikkaniPS3 No me persigas Iñaki [?]
Necesito el PDF , alguien BONDADOSO COMPARTAMELO PORFAVOOOOR
Amigo yo necesitando ayuda y vos venís a decir que el NULL es el "\o" y no "\0".
Tengo un Bug!!!!!
#include
#include
#include
int main ()
{
char c1[5];
char c2[5];
printf("introduce frase: ");
fgets(c1,5,stdin);
printf("introduce la segunda frase
");
fgets(c2,5,stdin);
if(strcmp(c1,c2)== 0){
printf("los 2 string son iguales
");
}
else{
printf("los 2 string no son iguales
");
}
}
si hago como lo dices tu no me deja escribir la segunda frase :
resultado:
~/workspace/programming/initials/ $ make ej
clang -ggdb3 -O0 -std=c11 -Wall -Werror -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-unused-variable -Wshadow ej.c -lcrypt -lcs50 -lm -o ej
~/workspace/programming/initials/ $ ./ej
introduce frase: hola
introduce la segunda frase los 2 string no son iguales
esa gente mala ahí :( 6:40
me compila, pero no ejecuta correctamente "main.c: In function 'main': main.c:22:9: warning: implicit declaration of function 'system' [-Wimplicit-function-declaration] system ("pause"); ^ sh-4.3$ main Introduce una frase; casa Introduce la segunda frase: Los dos strings No son iguales.
Aqui esta el mismo archivo que lo pase a Word y lo modifique para ocupar mejor la hoja para imprimir. Saludos . www.mediafire.com/file/8l3xq1jd2d2epny/String.docx/file
se ha caido el dropbox
el scanner de java es mucho mejor
Si, ten en cuenta que C es de los primeros lenguajes en alto nivel y que fue creado en los 60? Java ha mejorado muchisimas cosas de C y C++, ya en C++ se puede usar la clase string sin tener que liarse tanto, pero todo esto es hablar por hablar!!
Hay que aprender desde abajo para poder llegar alto!! Y Java, C++, Python y muchos otros lenguajes se basan en C, por lo que aprender C es como aprender parte de muchisimos lenguajes de programacion! Asi que es muy importante.
Un saludo.
debería de hacer vídeos de c++ y listo.
windowsluxury C es la base de C++, en un futuro enseñare C++ y tambien estoy enseñando Java en este momento en otra lista de reproduccion, si no te gusta C puedes pasarte a Java.
La gracia de todo esto es preparar la mente para la programacion, por eso C es el mejor lenguaje para empezar, porque no hace nada solo, todo tienes que hacerlo tu y te ayuda a pensar mucho y a marcarte estrategias para conseguir tu objetivo. Ademas, comenzar programando orientado a objetos es algo realmente complejo y hace abandonar a muchisimas personas en los primeros intentos.
Un saludo.
estudio java.
Ezequiel ¿te aplaudo?