• Viernes 8 de Noviembre de 2024, 16:34

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jusit

Páginas: [1]
1
C/C++ / invertir cadena en el mismo array
« en: Miércoles 17 de Febrero de 2010, 12:08 »
Hola,
Tengo que hacer un ejercicio en el que hay que invertir una cadena de caracteres en un mismo vector con punteros. Lo he probado varias veces pero no consigo dar con la solución, ya que o bien me copia una letra, repitiéndola en todos los elementos del vector, o solo llega hasta la mitad y luego duplica el resto de letras.

Código: C
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #define N 100
  6.  
  7. main()
  8. {
  9. char cadena[N];
  10. int i,lon=0;
  11. char *cad=NULL;
  12.  
  13. cad=cadena;
  14.  
  15. gets(cadena);
  16. fflush(stdin);
  17. lon=strlen(cadena);
  18.  
  19. for (i=0,lon=-1;i<=lon;i++)
  20. {
  21.   *(cad+i)=*(cad+lon-1);
  22. }
  23.  
  24. puts(cad);
  25.  
  26. system("pause");
  27. }
  28.  
  29.  

La verdad es que hace poco que empecé con el tema de los punteros, y aún tengo muchas dudas. Cuál podría ser el problema del código?

2
C/C++ / Re: contar letras repetidas en una cadena
« en: Sábado 6 de Febrero de 2010, 01:12 »
Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define N 100
  5.  
  6. int i;
  7. int length;
  8. int ascii;
  9. char cipher[N];
  10. int letters[26];
  11.  
  12. int main()
  13. {
  14.  
  15. printf("Introduce una cadena: ");
  16. gets(cipher);
  17. fflush(stdin);
  18.  
  19. length = strlen(cipher);
  20.  
  21. for (i=0; i<length; i++)
  22. {
  23. ascii = cipher[i];
  24.  
  25. if (ascii > 96)
  26. ascii = ascii - 97;
  27. else
  28. ascii = ascii - 65;
  29.  
  30. letters[ascii]++;
  31.  
  32.  
  33. }
  34.  
  35. printf("a: %d ", letters[0]);
  36. printf("b: %d ", letters[1]);
  37. printf("c %d ", letters[2]);
  38. printf("d: %dn", letters[3]);
  39. printf("e: %d ", letters[4]);
  40. printf("f: %d ", letters[5]);
  41. printf("g: %d ", letters[6]);
  42. printf("h: %dn", letters[7]);
  43. printf("i: %d ", letters[8]);
  44. printf("j: %d ", letters[9]);
  45. printf("k: %d ", letters[10]);
  46. printf("l: %dn", letters[11]);
  47. printf("m: %d ", letters[12]);
  48. printf("n: %d ", letters[13]);
  49. printf("o: %d ", letters[14]);
  50. printf("p: %dn", letters[15]);
  51. printf("q: %d ", letters[16]);
  52. printf("r: %d ", letters[17]);
  53. printf("s: %d ", letters[18]);
  54. printf("t: %dn", letters[19]);
  55. printf("u: %d ", letters[20]);
  56. printf("v: %d ", letters[21]);
  57. printf("w: %d ", letters[22]);
  58. printf("x: %dn", letters[23]);
  59. printf("y: %d ", letters[24]);
  60. printf("z: %d ", letters[25]);
  61.  
  62. printf("nn");
  63. system("pause");
  64. }
  65.  
  66.  

3
C/C++ / Re: contar letras repetidas en una cadena
« en: Viernes 5 de Febrero de 2010, 10:55 »
Hola,

Le verdad que yo en ningún momento he pedido la respuesta del problema, tan solo que me dierais una orientación, es decir, una explicación de como enfocar el mismo.

Ahí va la solución del problema hecho para un array unidimensional:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 100

int i;
int length;
int ascii;
char cipher[N];
int letters[26];

int main()
{

 printf("Introduce una cadena: ");
    gets(cipher);
    fflush(stdin);
   
    length = strlen(cipher);
   
    for (i=0; i<length; i++)
        {
              ascii = cipher;
             
              if (ascii > 96)
                 ascii = ascii - 97;
              else
                  ascii = ascii - 65;
             
              letters[ascii]++;
           
             
        }
       
        printf("a: %d   ", letters[0]);
        printf("b: %d   ", letters[1]);
        printf("c %d   ", letters[2]);
        printf("d: %dn", letters[3]);
        printf("e: %d   ", letters[4]);
        printf("f: %d   ", letters[5]);
        printf("g: %d   ", letters[6]);
        printf("h: %dn", letters[7]);
        printf("i: %d   ", letters[8]);
        printf("j: %d   ", letters[9]);
        printf("k: %d   ", letters[10]);
        printf("l: %dn", letters[11]);
        printf("m: %d   ", letters[12]);
        printf("n: %d   ", letters[13]);
        printf("o: %d   ", letters[14]);
        printf("p: %dn", letters[15]);
        printf("q: %d   ", letters[16]);
        printf("r: %d   ", letters[17]);
        printf("s: %d   ", letters[18]);
        printf("t: %dn", letters[19]);
        printf("u: %d   ", letters[20]);
        printf("v: %d   ", letters[21]);
        printf("w: %d   ", letters[22]);
        printf("x: %dn", letters[23]);
        printf("y: %d   ", letters[24]);
        printf("z: %d   ", letters[25]);
       
 printf("nn");    
 system("pause");
}

Como dije, si se hacerlo con una/varias tablas unidimensionales, pues las comparas y verificas si esta o no la letra y cuantas veces se repite. En este caso, he usado los valores ASCII para determinar el carácter y almacenar el numero de veces que aparece en una tabla.

4
C/C++ / contar letras repetidas en una cadena
« en: Jueves 4 de Febrero de 2010, 12:04 »
Hola,
Hace poco que soy nuevo y tengo un problema con un programa que estoy realizando en C. Se me pide que haga un contador de aquellas letras que aparecen repetidas en una cadena utilizando una matriz bidimensional. La verdad es que con una matriz unidimensional si que lo pude hacer, pero con una de dos no se por donde empezar.

Podríais darme alguna pequeña orientación?

Gracias,

Páginas: [1]