|- - -|
|

Napisati C program koji za dve niske koje se zadaju kao argumenti komandne linije ispisuje rezultat poziva bibliotečnih funkcija (<string.h>):

  • strlen
  • srcmp
  • strncmp
  • strstr
  • strncat
  • strncpy
  • strncmp
rešenje (.c)

#include <stdio.h>
#include <string.h>
#define MAXDUZ 1000
main(int argc, char *argv[])
{
int i, n, a[MAXDUZ], b[MAXDUZ];
if (argc != 3)
{
printf("Greska!!! Morate uneti tacno dve niske iz komandne linije");
return 0;
}
printf("Duzina prve niske je %d, a duzina druge niske je %d.\n", strlen(argv[1]), strlen(argv[2]));
i = strcmp(argv[1], argv[2]);
if (i == 0)
printf("Unesene niske su jednake\n");
else if (i < 0)
printf("Prva niska se nalazi ispred druge niske nakon sortiranja\n");
else
printf("Druga niska se nalazi ispred prve niske nakon sortiranja\n");
printf("Unesite broj - koliko znakova iz prve i druge niske treba uporediti\n");
scanf("%d", &n);
i = strncmp(argv[1], argv[2], n);
if (i == 0)
printf("Prvih %d znakova obe niske su jednaki\n", n);
else if (i < 0)
printf("Prvih %d znakova prve niske su ispred prvih %d znakova druge niske,\ngledano leksikografski\n", n, n);
else printf("Prvih %d znakova druge niske su ispred prvih %d znakova prve niske,\ngledano leksikografski\n", n, n);
if (strstr(argv[1], argv[2]) != NULL)
printf("Druga niska se nalazi unutar prve niske\n");
else
printf("Prva niska ne sadrzi drugu nisku\n");
strncat(argv[1], argv[2], n);
printf("Prva niska kada joj se doda prvih %d znakova druge niske:\n%s\n", n, argv[1]);
strncpy(argv[1], argv[2], n);
printf("Prva niska kada se u nju iskopira prvih %d znakova druge niske:\n%s\n", n, argv[1]);
i = strncmp(argv[1], argv[2], n);
printf("Nakon svih promena ");
if (i == 0)
printf("prvih %d znakova obe niske su jednaki.", n);
else if (i < 0)
printf("prva niska je ispred druge, gledajuci leksikografski");
else
printf("druga niska je ispred prve, gledajuci leksikografski");
return 0;
}

Primer:

C:\...>0 programiranje racunarstvo
Duzina prve niske je 13, a duzina druge niske je 11.
Prva niska se nalazi ispred druge niske nakon sortiranja
Unesite broj - koliko znakova iz prve i druge niske treba uporediti
5
Prvih 5 znakova prve niske su ispred prvih 5 znakova druge niske,
gledano leksikografski
Prva niska ne sadrzi drugu nisku
Prva niska kada joj se doda prvih 5 znakova druge niske:
programiranjeracun
Prva niska kada se u nju iskopira prvih 5 znakova druge niske:
acun
Nakon svih promena prvih 5 znakova obe niske su jednaki.


|
|= - =|
|_ - _|