Vissza

A parancssor argumentumai

Megoldott feladatok:

  1. Írassuk ki a parancssor argumentumait. ( Forráskód )
  2. Használva a qsort könyvtár függvényt rendezzünk egy egydimenziós tömböt, ahol a tömb egy elemének típusa egy egész szám ( Forráskód ).
  3. Rendezzük a parancssor argumentumában megadott karakterláncokat, qsort -al. ( Forráskód )

Házi feladatok:
  1. Írassuk ki a parancssor argumentumait, mindegyiket külön sorba, feltüntetve az argumentumok hosszát
  2. Használva a qsort könyvtár függvényt rendezzünk egy egydimenziós tömböt, ahol a tömb egy elemének típusa rendre:

//void qsort( void *tomb, size_t hany, size_t mekkora, int (__cdecl *hasonlit )(const void *a1, const void *a2 ) );


Forráskódok:
1.

#include <stdio.h>
int main(int argc, char * argv[])
{
    int i;
    printf("A parancs sor:: \n%s\n\n", argv[0]);
    printf("Az argumentumok szama:: %d\n", argc);
    printf("Az argumentumok:");
    for (i = 1; i < argc; i++)
        printf("%s ", argv[i]);
    printf("\n");
    return 0;
}

Vissza


3.

#include <stdio.h>
#include<time.h>
#include<stdlib.h>
typedef short type;
int hasonlit(const void *a1, const void *a2);

int main()
{

type *a;
int i, n;
n = 10;
a = (type*)malloc(n*sizeof(type));
srand((unsigned)time(NULL));
for (i = 0; i < n; i++)
      a[i] = rand() % 100;
qsort(a, n, sizeof(type), hasonlit);
free (a);
return 0;
}

int hasonlit(const void *a1, const void *a2)
{
    return *((type*)a1) - *((type*)a2);
}
Vissza

4.
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

int hasonlit( const void *a1, const void *a2 );
int main( int argc, char **argv )
{  
int i;  
argv ++;  
argc --;
qsort( (void *)argv, (size_t)argc, sizeof( char * ), hasonlit );  
for (i = 0; i < argc; ++i)     
    printf("%s ", argv[i]);  
printf( "\n" );
return 0;
}

int hasonlit( const void *a1, const void *a2 )

return strcmp( * ( char** ) a1, * ( char** ) a2 );
}

Vissza