Bloque 5.6: Strings y Ejemplo Como Acceder a un Caracter dentro de String

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ธ.ค. 2024

ความคิดเห็น • 74

  • @miguelin0k
    @miguelin0k 7 ปีที่แล้ว +42

    Me entero mejor viendo media hora de tus vídeos que en 10 horas de clase.

    • @feriasTopG
      @feriasTopG 7 ปีที่แล้ว +1

      hola amigo estas en ingenieria de sistema saludos

    • @miguelin0k
      @miguelin0k 7 ปีที่แล้ว +1

      isaac feria noo, Mecánica

  • @zptrack2490
    @zptrack2490 4 ปีที่แล้ว

    Muchas gracias por estos videos son una enorme ayuda,
    Saludos.

  • @jorgeb2789
    @jorgeb2789 7 ปีที่แล้ว +7

    Se me ha ocurrido una idea, que también elimina el
    , pero es más eficiente y además no nos la liará si hay mas de un
    que está puesto de forma cosciente, la función sería la siguiente:
    void Convert(char string1[30]){
    int change;
    change=strlen(string1);
    string1[change-1]='\0';
    }

  • @jonathanivanlondono6304
    @jonathanivanlondono6304 4 ปีที่แล้ว

    muchas gracias por los videos y por el pdf

  • @Imper_SR
    @Imper_SR 6 ปีที่แล้ว

    Me hizo mucha gracia cuando en un vídeo anterior descubrí que estuviste en la UCA, yo estoy en el grado de matemáticas y estoy dando informática pero por los apuntes no me entero de nada, cosa que creo que dijiste que te paso a ti también xDD
    PD: Me encantan tus vídeos, sigue así!

  • @Camila-do8ot
    @Camila-do8ot ปีที่แล้ว

    Muchas gracias por toda tu ayuda, hice lo que hiciste pero con algunas funciones
    #include
    #include
    #include
    #define num 50
    // cambiar en una frase ingreasada por teclado, las letras a por un espacio
    void ingresar(char stg[]);
    void cambiarLetra(char stg[],char letra);
    int main()
    {
    char frase[num];
    ingresar(frase);
    cambiarLetra(frase,'a');
    printf("%s",frase);
    return 0;
    }
    void ingresar(char stg[]){
    printf("Introduce una frase
    ");
    fflush(stdin);
    fgets(stg,num,stdin);
    }
    void cambiarLetra(char stg[],char letra){
    int cantLetras, i;
    cantLetras=strlen(stg);
    for(i=0; i < cantLetras; i++){
    if (stg[i]==letra){ // en este caso no necesitamos strcmp porque estamos comparando caracteres, esas funcion es para strings
    stg[i]=' ';
    }
    }
    }

  • @benko-pi1fi
    @benko-pi1fi 9 ปีที่แล้ว

    EXCELENTE!

  • @javierlopezgarcia2486
    @javierlopezgarcia2486 6 ปีที่แล้ว +2

    Si apruebo me suscribo, lo tienes complicao bro pero no imposible

    • @armandomora1192
      @armandomora1192 5 ปีที่แล้ว

      Aprobaste?

    • @sadelax
      @sadelax 3 ปีที่แล้ว +1

      @@armandomora1192 el colega está suscrito así q parece q sí

    • @armandomora1192
      @armandomora1192 3 ปีที่แล้ว

      También yo pasé JAJA

  • @unpocodetodo3539
    @unpocodetodo3539 7 ปีที่แล้ว

    Enseñanos a como hacer un boot
    Seria Increible!

  • @gonzalotranquilinogarcia3975
    @gonzalotranquilinogarcia3975 7 ปีที่แล้ว +1

    Hola, excelentes videos. eres bueno explicando, disculpa... el enlace que dejaste a dropbox está caído, podrias proporcionar nuevamente el enlace, porfavor.

  • @harlesepc5906
    @harlesepc5906 3 ปีที่แล้ว

    Una pregunta la cadena se guarda en un vector. y por que no se inicializa el tamaño del vector. o es que de forma automática la memoria reserva espacio con respecto al tamaño de la cadena.

  • @Demogames1996
    @Demogames1996 2 ปีที่แล้ว

    tus videos son increibles, aun hoy me sirven, pero una pequeña duda, porque arriba la frase va con comillas dobles y luego abajo la 'a' va en comillas simples ? muchas gracias

  • @iTiago98
    @iTiago98 10 ปีที่แล้ว +1

    ¿Qué ocurriría si se hiciera un fgets a un string que no tiene límite de caracteres? ¿También se perdería memoria como con gets?

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  10 ปีที่แล้ว +1

      iTiago98 Claro. No es que se pierda memoria, sino que ocupa memoria que no es suya lo que puede ocasionar problemas porque le estas quitando la memoria a Windows, un programa, o lo que sea...

    • @iTiago98
      @iTiago98 10 ปีที่แล้ว

      Empieza A Programar a eso me refería, a perder datos. No sé por qué he dicho perder memoria... Gracias por el aviso

  • @juanpablo5447
    @juanpablo5447 8 ปีที่แล้ว

    Muy buenas que tal .. creo que en la función al contar los caracteres no se incluye el \0, por lo tanto al poner (i < limite) no estas considarando la ultima letra por lo que deberias poner (

    • @jorgeb2789
      @jorgeb2789 7 ปีที่แล้ว

      Deja de creer cosas y compruébalo, además de que estás equivocado, ya que un string, empieza en la posición 0, por lo tanto si strlen te devuelve 9 caracteres tu deberás comprobar el, 0,1,2,3,4,5,6,7,8 (que son los 9).

    • @juanpablo5447
      @juanpablo5447 7 ปีที่แล้ว

      Ya lo porbe hace 10 meses, estas equivocado. salu2 y buena suerte con tu canal!

    • @jorgeb2789
      @jorgeb2789 7 ปีที่แล้ว +1

      Ya te digo yo que no hahaha, ademas no es mi canal. Pero bueno si no quieres reconocer tu errores alla tú.

  • @Adrirubio98
    @Adrirubio98 4 ปีที่แล้ว

    Creo que en el minuto 9:23 está mal, puesto que strlen no cuenta el caracter \0, entonces el bucle debe ser for (i=0; i

  • @Satore-we3eg
    @Satore-we3eg 10 ปีที่แล้ว

    Podrias hacer un curso de la libreria allegro en la version actual de dev c++.

    • @Satore-we3eg
      @Satore-we3eg 10 ปีที่แล้ว

      ?????

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  10 ปีที่แล้ว +1

      Lo siento, pero no conozco lo suficiente de allegro como para hacer un curso.
      En el futuro lo hare de otra libreria mucho mas potente que se llama Libgdx, buscala y mira un poco como va, se programa en Java y es realmente muy potente.
      Un saludo.

  • @andersonloaiza9622
    @andersonloaiza9622 10 ปีที่แล้ว

    disculpe. cómo seria la estructura para introducir el string por teclado: que se pondria en el espacio donde va el numero de caracteres del string.
    printf ("introduce una frase: ");
    fgets (c1,?,stdin);
    gracias, saludos desde colombia, y excelentes todos los videos, he aprendido mucho y me esta gustando demasiado esto de la programacion

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  10 ปีที่แล้ว

      anderson loaiza Todo lo explico, mejor que vayas poco a poco.
      Un saludo.

  • @123456242588432
    @123456242588432 8 ปีที่แล้ว

    Hola buenas tardes. Llevo toda la tarde intentando sacar un ejercicio y no me sale. Te pide comprobar si una palabra es palindromo o no. Gracias

  • @Elreydelacolina1
    @Elreydelacolina1 9 ปีที่แล้ว +1

    Bueno, me he mirado los dos videos de strings y el PDF y no encuentro lo que quiero.
    te pongo un ejemplo, estoy haciendo la primera pantalla de un juego en el que quiero que los jugadores escriban sus nombres, quiero que el nombre tenga un máximo de 10 caracteres.
    De la forma que has explicado el usuario puedes escribir lo caracteres que quiera pero el programa solo recogerá 10. Se como hacer que se muestre un mensaje de error para que el usuario tenga que volver a escribir otra vez, pero lo que quiero hacer es que cuando el usuario escriba el 10 caracter no le deje escribir mas. Como pasaba en las recreativas o incluso es muchos juegos actuales. Como puedo hacer eso?. Gracias

    • @TheMarrioser
      @TheMarrioser 7 ปีที่แล้ว +1

      A parte de indicarlo antes, yo podría un do while para validar y ya.
      Respuesta con dos años de tardanza, pero espero que le sirva a alguien.

  • @sergiohomararguello3079
    @sergiohomararguello3079 2 ปีที่แล้ว

    hola, ¿que significa que son las cadenas imutables? aqui cambian un caracter

  • @sebastianamagua3947
    @sebastianamagua3947 8 ปีที่แล้ว

    que tal puedes hacer un ejemplo de numeros aleatorios pero que los numeros no se repitan ni una sola vez

  • @wpythonqc8076
    @wpythonqc8076 5 ปีที่แล้ว +1

    yo le agregue que ahora pida una frase y despues pida que letra desea reemplazar de esa frase por un asterisco :]
    #include
    #include
    void cd1(char c1[20] ,char caracter[2]);
    int main(){

    char c1[20];
    char caracter[2];

    printf("introduce una frase: ");
    fgets(c1,20,stdin);

    printf("que letra desea reemplazar: ");
    fgets(caracter,2,stdin);


    cd1(c1,caracter);

    printf("%s\0",c1);





    system("pause");
    return 0;
    }
    void cd1(char c1[20] ,char caracter[2]){

    int i;

    for(i=0;i

  • @yolandagarcia2709
    @yolandagarcia2709 9 ปีที่แล้ว

    hola, en la parte final del vídeo se usa strlen se olvida de dar la salida a la longitud de la cadena. Soy novata en esto, seria correcto dar la salida en void???
    he escrito algo así;
    void limite (char c1[]){
    int i, longitud, aux;
    longitud =0;
    aux = 0;
    longitud =strlen(c1);
    for (i=0; i

  • @randaahmed6842
    @randaahmed6842 3 ปีที่แล้ว

    hola que tal, la verdad es que me gusta su explicacion, pero tengo una duda, yo estoy trabajando con code blocks y cuando definido un variable struct y utilizo el typedef y le pongo un nombre en el suprograma , el compilador me da error, como es que a usted si le deja y a mi no, le pongo un ejemplo. typedef struct {int identificador; char nombre[50]; }Almacen; lo he intentado varias veces y no me deja. gracias

  • @erikivangallardo2524
    @erikivangallardo2524 9 ปีที่แล้ว

    hola, buenas tardes, si quisieramos hacer una matriz con caracteres, e de ejemplo una matris de tres palabras por tres palabras?

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  8 ปีที่แล้ว

      +Jose Manuel Muñoz Esteban +Erik Ivan Gallardo No es tal como lo dices Jose Manuel, el no esta pidiendo una matriz dinámica, esta pidiendo una matriz a secas, lo cual se puede hacer con los conocimientos de matrices que enseño en este bloque.
      Simplemente, en vez de hacer una matriz de enteros hay que hacerla de char y de la dimensión que se requiere al comienzo. Si no supiera la dimensión deseada o se fuese ampliando a lo largo de la vida del programa, se requeriría que fuese dinámica.
      Un saludo.

  • @enlamira2177
    @enlamira2177 9 ปีที่แล้ว

    En el límite del for no sería un

    • @inanox
      @inanox 9 ปีที่แล้ว

      +Juan Daniel Basantes Carrasco No, recuerda que los arrays empiezan de 0...

  • @TukaPlay
    @TukaPlay 8 ปีที่แล้ว

    Hola +Empieza A Programar, tengo un problema y me gustaría saber si me podes dar una solución, me gustaría que al ingresar una contraseña los caracteres se visualicen como '*' y no la verdadera palabra, como lo logro?, busco y busco y no lo encuentro :(

  • @crmmotors9130
    @crmmotors9130 7 ปีที่แล้ว

    una pregunta: si tienes un string tipo char de dimensión 9, y se introducen por ejemplo 1234567.
    como se podría completar el numero con ceros en la izquierda y que lo imprima?
    es decir, quiero que me imprima 001234567. para que los "0" completen la dimensión del vector.
    GRACIAS!!!!

    • @EmpiezaAProgramar
      @EmpiezaAProgramar  7 ปีที่แล้ว

      Lo tienes que hacer tu mismo a mano, asi que toca darle una pensada al asunto :).

    • @jorgeb2789
      @jorgeb2789 7 ปีที่แล้ว

      Lo que podrías hacer es...
      int variable;
      variable=srtlen(string);
      int i;
      for(i=variable;i

    • @jorgeb2789
      @jorgeb2789 7 ปีที่แล้ว

      Ya lo he hecho, y funciona, he cambiado algunas cosas que estaban mal, si tienes alguna duda, pregúntame, no soy un experto, yo también voy por este vídeo, pero al igual puedo ayudarte en algo!!...
      :
      #include
      #include
      void ChangeString(char srt[9]);
      int main(){
      char str1[9];
      printf("Introduce prhase to str1
      ");
      fgets(str1,9,stdin);
      ChangeString(str1);
      puts(str1);
      system("pause");
      return 0;
      }
      void ChangeString(char str[9]){
      int lengh;
      lengh=strlen(str);
      printf("Lengh value is: %i.
      ",lengh);
      int i;
      for(i=lengh-1;i

    • @borjam.2358
      @borjam.2358 4 ปีที่แล้ว +1

      A la hora de hacer el printf para que te imprima los 7 números del vector añades 010 entre el % y la s. Ejemplo:
      1º- introduces los 7 valores al vector[10] con fgets
      2º-y luego imprimes los valores así: printf(''%010s'',vector);

  • @itzancasales7286
    @itzancasales7286 7 ปีที่แล้ว

    Que te parece un ejercicio que sea de hacer un programa que detecte si un numero es capicua o una frase es un polidromo, lo he intentado un monton de veces pero nunca me sale.

    • @msterp.c.m9495
      @msterp.c.m9495 4 ปีที่แล้ว

      //Saber si un número es capicúa
      #include
      int main(){

      int v[5];

      int i, aux;
      aux=0;

      for(i=0; i

  • @kameondavital
    @kameondavital 7 ปีที่แล้ว

    Disculpa, me gustaría tener el PDF de las funciones mas importantes de strings, me sale que hay un error en el dropbox o que se ha borrado, aun lo tienes a los archivos? Me ha sido muy util hasta ver todos los videos, espero que siga genial todo.
    Saludos y agradeceré tu respuesta a mi pedido.

  • @sergiohomararguello3079
    @sergiohomararguello3079 2 ปีที่แล้ว

    me hubiera gustado que convirtiera a mayusculas con tildes

  • @adelmartinez6015
    @adelmartinez6015 7 ปีที่แล้ว

    Que tal amigo? El archivo donde están las funciones de String ya no se encuentra, podrías subirlo nuevamente? Saludos desde Venezuela.

  • @morgan21639
    @morgan21639 8 ปีที่แล้ว +1

    Hola como se elimina un espacio en blanco, m e lo pusieron en el examen y casi nadie lo hizo.

    • @morgan21639
      @morgan21639 8 ปีที่แล้ว

      Y además te falta otra función strstr, no la entiendo.

    • @smith6540
      @smith6540 8 ปีที่แล้ว +1

      bueno seria:
      for(condicion){
      if(str[i] = ' ';){// comillas simples con un espacio dentro
      str[i] = '';//comillas simples con nada dentro
      }
      }

    • @gabrielcolombo4344
      @gabrielcolombo4344 8 ปีที่แล้ว

      //Strings
      #include
      #include
      int main (){
      char c[] = "Hola como va";
      leer (c);
      system ("pause");
      return 0;
      }
      void leer (char c[]){
      int i,max;
      max = strlen(c);
      for (i = 0; i < max; i++){
      c[i];
      if (c[i] != ' '){
      printf ("%c",c[i]);
      }
      }
      printf ("
      ");
      }

  • @argentinoyblanco9117
    @argentinoyblanco9117 4 ปีที่แล้ว

    Escribí este código y sucede algo MISTERIOSO en el renglón 8 y el renglón 24 (los renglones de cuando lo ejecutás):
    #include
    #include
    int main()
    {
    char frase[27], i;
    for(i=0; i

  • @joshuadavidcantillolatorre5909
    @joshuadavidcantillolatorre5909 9 ปีที่แล้ว

    Hola, que tal si haces un vídeo en el que a cada letra de una frase se le asigne un numero y este numero después se convierta a binario. Gracias

  • @charly-ic2dd
    @charly-ic2dd 6 ปีที่แล้ว

    no entendi la uitilidad de la funcion cambio, para que sirve??

    • @crisdaxmusicinfinity6807
      @crisdaxmusicinfinity6807 4 ปีที่แล้ว

      el primero verdad?

    • @charly-ic2dd
      @charly-ic2dd 4 ปีที่แล้ว +1

      @@crisdaxmusicinfinity6807 amigo ya soy ingeniero queres q te ayude en algo?

    • @crisdaxmusicinfinity6807
      @crisdaxmusicinfinity6807 4 ปีที่แล้ว

      @@charly-ic2dd uhyy si por favor ,es que tengo una actividad que estoy estancado Tengo que un usuario ponga su nombre o apellido y de esos sacar sus iniciales : eje: camilo torres y debe salir : Ct , se el código para que el usuario escriba su nombre y apellido pero no se como que el carácter inicial tanto el del nombre y el del apellido salgan.... si me ayudas muchas gracias.
      y debo utilizar string

    • @charly-ic2dd
      @charly-ic2dd 4 ปีที่แล้ว

      @@crisdaxmusicinfinity6807 amigo era broma , actualmente trabajo de uber :(

    • @crisdaxmusicinfinity6807
      @crisdaxmusicinfinity6807 4 ปีที่แล้ว

      @@charly-ic2dd kheeee, y que paso ?

  • @leosiete220
    @leosiete220 9 ปีที่แล้ว

    hola, disculpem, que estoy haciendo mal?? gracias
    #include
    #include
    void fo(char f[]);
    int main(){
    char fo[] = "Frase original";
    // printf("Ahora quitaremos el espacio y lo cambiaremos por un enter");
    cambio(fo);
    printf("Resultado: %s",fo);
    system("pause");
    return 0;
    }
    void fo(char f[]){
    int longitud,i;
    longitud=strlen(f);
    for(i=0;i

    • @giancarlopalacios2558
      @giancarlopalacios2558 9 ปีที่แล้ว

      +Leonel Cruz tu if() no tiene { }, ni tu for.

    • @leosiete220
      @leosiete220 9 ปีที่แล้ว

      creo que no son necesarios

    • @dooby777777777777
      @dooby777777777777 9 ปีที่แล้ว

      +Leonel Cruz Llego tarde pero por si a alguien le sirve:
      Tu "void fo(char f[])" debería ser "void cambio(char f[])" ya que la función se llama "cambio".

  • @Alan-fu2vx
    @Alan-fu2vx 9 ปีที่แล้ว

    Maestro, primero que nada... Sé cuanto te jode que te molestemos por aca, pero sobre los PDF con ejercicios que venis dejando (que son muy buenos por cierto, no hay mejor manera de aprender a programar que programando), el ultimo que dejaste, en el ejercicio 22 el de los palíndromos... Me sale/salió checkear palabras palíndromas; pero cuando trato de hacer que "checkee" frases palíndromas al momento de querer sacar los espacios del medio (lo logro con una función) y al compararlos (con stricmp/strcmpi) pareciera que el sacarle los espacios me jode su memoria y al momento de compararlos aunque se vean iguales luego de invertir y sacar espacios me los toma como que son distintos.
    Mi pregunta sin más es, no hacer un video si no queres, pero si pudieras al menos postear/responderme con una hojita PDF o un archivo ".c" o algo, la resolución del problema, ya que hasta busqué en internet como media hora, pero nadie se calienta en frases palíndromas, te muestran solo palabras. Gracias por los videos por cierto, sos el mejor!! +Empieza A Programar

    • @Alan-fu2vx
      @Alan-fu2vx 9 ปีที่แล้ว

      +Alan Randsom Al final lo solucione, el problema era que al invertir me invertia el \0; y por eso quedaba distinto el string. Aunque ahora que lo pienso tambien en lugar de invertir y comparar, podria haber hecho una funcion que tenga dos variables numericas, una 0 y la otra el length del string; e ir subiendo la primera y bajando la segunda e ir comparando si cada char es igual a su opuesto. Pero baah el invertirlos me sirvio para aprender supongo.
      Por cierto el problema lo soluciones poniendo en la condicional que " string[i] != '\0' " cosa que deje ese caracter donde estaba... Por si alguien esta teniendo el mismo problema.