Advertisement
Guest User

aufgabe3_bestanden

a guest
Nov 27th, 2014
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. void dump(unsigned char *satz, char suchbuchstabe,long laenge1)
  5. {
  6. long start1=laenge1;
  7. long start=(long)satz & ~(0xF); //mit Adressen keine rechenfunktion
  8. long ende;
  9. char *p;
  10. int i;
  11. int j;
  12. int berechnen;
  13. int anzahl;
  14. int bytegroesse=0;
  15. int gefunden=0;
  16. char *laenge;
  17. char *zeichenkette;
  18.  
  19. ende=(long)satz|0xF;
  20. ende=ende+1;
  21.  
  22. printf("ADDR 0123456789ABCDEF \n");
  23.  
  24. berechnen = ende - start; // berechnen, wieviele Zeichen in eine Reihe können. /15
  25.  
  26. anzahl = ((start1) / 16)+1; // anzahl der Reihen angeben = 16 wegen der 0 am Ende der Zeichenkette. / 15 = Anzahl der Reihen
  27.  
  28. for(j = 0; j<anzahl; j++) // Reihen durchlaufen.
  29. {
  30. printf("\n%p ", start);
  31. for(i=0;i<=15;i++)
  32. {
  33. p=(char *)start;
  34.  
  35.  
  36. if(*p>=' ' && *p<='~')
  37. {
  38. printf("%c", *p);
  39. }
  40. else
  41. {
  42. printf(".");
  43.  
  44. }
  45. start++;
  46.  
  47. }
  48. }
  49. }
  50.  
  51.  
  52. int main (int argc, char **argv)
  53. {
  54. int gefunden =0;
  55. if(argc!=3)
  56. {
  57. printf("Fehler");
  58. return 1;
  59. }
  60. printf("main adr %p \n", main);
  61.  
  62. //nochmal fuer ausgabe-funktion
  63. printf("Dump adr %p \n", dump);
  64.  
  65.  
  66. long a=strlen(argv[1])+1;
  67. char *satz;
  68. satz= (char*) malloc((strlen(argv[1])+1)*sizeof(char)); // Speicher anfordern
  69.  
  70. strcpy(satz, argv[1]);
  71.  
  72. printf("Heap adr %p \n",satz);
  73.  
  74. char zeichen = *argv[2];
  75. dump(satz, zeichen,a);
  76.  
  77. //zeichen zählen
  78. //
  79. char *psatz=satz;
  80. while (1)
  81. {
  82. if(*satz==0)
  83. {
  84. break;
  85. }
  86. if(zeichen ==*satz )
  87. {
  88. gefunden++;
  89. }
  90. satz++;
  91.  
  92. }
  93. printf("\n\n");
  94. printf("Suchkriterium: %c\n",*argv[2]);
  95. printf("\n \nAnzahl der gefundenen Zeichen: %i \n \n", gefunden);
  96. printf("Die Länge des Strings: %i \n" ,strlen(argv[1])+1);
  97.  
  98. free(psatz);
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement