12.03 - Neke od funkcija za rad sa stringovima
- strlen() - izračunava dužinu stringa
- strcpy() - copira jedan string u drugi
- strcmp() - upoređuje dva stringa
- strcat() - concatenacija - nadodaje jedan string na kraj drugog
Ako je c neki string, strlen(c) će dati dužinu stringa c (ne računa se '\0' na kraju). Ova funkcija je definisana u <string.h>.

Primer: upotreba funkcije strlen()
#include <stdio.h>
#include <string.h>
int main()
{
char a[20]="Program";
char b[20]={'P','r','o','g','r','a','m','\0'};
char c[20];
printf("Enter string: ");
gets(c);
printf("Length of string a = %d \n",strlen(a));
//calculates the length of string before null charcter.
printf("Length of string b = %d \n",strlen(b));
printf("Length of string c = %d \n",strlen(c));
return 0;
}
Output
Enter string: String Length of string a = 7 Length of string b = 7 Length of string c = 6
strcpy()
strcpy(a,b) - u string a će da kopira string bPrimer:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[10]= "awesome";
char str2[10];
char str3[10];
strcpy(str2, str1);
strcpy(str3, "well");
puts(str2);
puts(str3);
return 0;
}Output
awesome well
Bitno je napomenuti da bi odredišni niz karaktera, u koji se kopira string, trebao da bude dovoljno veliki, jer bi u suprotnom moglo da dođe do nedefinisanog ponašanja.
strcmp()
strcmp(a, b) - poredi dva stringa, vraća 0 ako su jednaki, negativan broj ako je prvo manji od drugog, a pozitivan broj ako je prvi veći od drugog.Ova funkcija upoređuje dva stringa karakter po karakter. Ako su prvi karakteri dva stringa jednaki, porede se sledeći karakteri. Ovo se nastavlja, sve dok se ne dođe do toga da su odgovarajući karakteri u dva stringa različiti, ili dok se ne stigne do NULL karaktera '\0' .
Primer:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[] = "abcd", str2[] = "abCd", str3[] = "abcd";
int result;
// comparing strings str1 and str2
result = strcmp(str1, str2);
printf("strcmp(str1, str2) = %d\n", result);
// comparing strings str1 and str3
result = strcmp(str1, str3);
printf("strcmp(str1, str3) = %d\n", result);
return 0;
}
Output
strcmp(str1, str2) = 32 strcmp(str1, str3) = 0
Prvi par karaktera koji nije isti kod stringova str1 i str2 je tre'i karakter. ASCII vrednost od 'c' je 99 a ASCII vrednost od 'C' je 67. Stoga, kada se upore]uju stringovi str1 i str2, povratna vrednost je 32.
U slučaju upoređivanja stringova str1 i str3 , kao rezultat se dobija 0 jer su ti stringovi identični..
strcat()
strcat(a, b) - ova funkcija vrši konkatenaciju, odnosno spajanje dva stringa - na string a će da se nadoveže string b i rezultat će da se smesti u string a.Primer:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[] = "This is ", str2[] = "programiz.com";
//concatenates str1 and str2 and resultant string is stored in str1.
strcat(str1,str2);
puts(str1);
puts(str2);
return 0;
}
Output
This is programiz.com programiz.com