Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- void dump(unsigned char *satz, char suchbuchstabe,long laenge1)
- {
- long start1=laenge1;
- long start=(long)satz & ~(0xF); //mit Adressen keine rechenfunktion
- long ende;
- char *p;
- int i;
- int j;
- int berechnen;
- int anzahl;
- int bytegroesse=0;
- int gefunden=0;
- char *laenge;
- char *zeichenkette;
- ende=(long)satz|0xF;
- ende=ende+1;
- printf("ADDR 0123456789ABCDEF \n");
- berechnen = ende - start; // berechnen, wieviele Zeichen in eine Reihe können. /15
- anzahl = ((start1) / 16)+1; // anzahl der Reihen angeben = 16 wegen der 0 am Ende der Zeichenkette. / 15 = Anzahl der Reihen
- for(j = 0; j<anzahl; j++) // Reihen durchlaufen.
- {
- printf("\n%p ", start);
- for(i=0;i<=15;i++)
- {
- p=(char *)start;
- if(*p>=' ' && *p<='~')
- {
- printf("%c", *p);
- }
- else
- {
- printf(".");
- }
- start++;
- }
- }
- }
- int main (int argc, char **argv)
- {
- int gefunden =0;
- if(argc!=3)
- {
- printf("Fehler");
- return 1;
- }
- printf("main adr %p \n", main);
- //nochmal fuer ausgabe-funktion
- printf("Dump adr %p \n", dump);
- long a=strlen(argv[1])+1;
- char *satz;
- satz= (char*) malloc((strlen(argv[1])+1)*sizeof(char)); // Speicher anfordern
- strcpy(satz, argv[1]);
- printf("Heap adr %p \n",satz);
- char zeichen = *argv[2];
- dump(satz, zeichen,a);
- //zeichen zählen
- //
- char *psatz=satz;
- while (1)
- {
- if(*satz==0)
- {
- break;
- }
- if(zeichen ==*satz )
- {
- gefunden++;
- }
- satz++;
- }
- printf("\n\n");
- printf("Suchkriterium: %c\n",*argv[2]);
- printf("\n \nAnzahl der gefundenen Zeichen: %i \n \n", gefunden);
- printf("Die Länge des Strings: %i \n" ,strlen(argv[1])+1);
- free(psatz);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement