Prezentacja programu PowerPoint

Transkrypt

Prezentacja programu PowerPoint
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 1
Poniżej omówione zostaną wybrane najczęściej spotykane funkcje
związane z przetwarzaniem łańcuchów (pełny zestaw w <string.h> i
<stdlib.h>, opisano je też w materiale TabliceZnakowe.pdf.
Funkcje te to:
strlen , strcpy, strcat, strcmp, strlwr, strupr, atoi,
itoa, strchr, strstr.
Funkcja strlen
size_t strlen(const char *s);
Funkcja oblicza długość łańcucha s bez końcowego znaku ‘\0'.
Przykład. Zastosowanie funkcji strlen do wyznaczania długości
łańcucha.
char s[10]="12345678";
int dl;
dl=strlen(s);//
dl będzie równe 8
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 2
Funkcja strcpy
char *strcpy(char *dest, const char *src);
Kopiuje łańcuch src do łańcucha dest. Kopiowanie ulega
zakończeniu po skopiowaniu znaku '\0' kończącego łańcuch
src. Funkcja zwraca wskaźnik dest .
Przykład.
#include <stdio.h>
#include <string.h>
int main(void)
{
char lan1[10="ABC";
char lan2[ ]="12345";
strcpy(lan1,lan2);// kopiowanie łańcuchów
printf("%s",lan1);
return 0;
}
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 3
Funkcja strcat
char *strcat(char *dest, const char *src);
Dołącza łańcuch src do końca łańcucha dest.
Funkcja zwraca wskaźnik dest. Długość połączonego
łańcucha jest równa strlen(dest)+strlen(src).
Przykład.
#include <stdio.h>
#include <string.h>
int main(void)
{
char lan1[20]="abcde";
char lan2[ ]="123456789";
strcat(lan1,lan2);
printf("lan1=%s",lan1);
return 0; }
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 4
Funkcja strcmp
int strcmp(const char *s1, const char *s2);
Porównuje łańcuch s1 z łańcuchem s2, porównując kody znaków
(np. kody ASCII) obu łańcuchów. Porównanie kończy się, gdy w
jednym z łańcuchów zostanie napotkany znak o większym kodzie lub
też zostanie osiągnięty koniec jednego z łańcuchów ( wtedy dłuższy
łańcuch uważany jest za większy).
Funkcja zwraca
- wartość <0, gdy s1<s2,
-wartość
0, gdy s1==s2,
-wartość >0, gdy s1>s2.
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 5
Przykład. Zastosowanie funkcji strcmp.
#include <stdio.h>
#include <string.h>
int main(void)
{
char lan1[10]="abcde",lan2[10 ]; int p;
printf("Podaj lancuch lan2:");
scanf("%s",lan2);
p= strcmp(lan1,lan2);
if (p<0) printf("\n lan1<lan2"); else
printf("\n lan1=lan2");
else printf("\n lan1>lan2");
getchar();
return 0;
}
if ( p==0)
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 6
Funkcja strlwr
char *strlwr(const char *s);
Zamienia w łańcuchu duże litery na małe, innych znaków nie zmienia.
Przykład. Zamiana dużych liter w łańcuchu na małe.
char lan1[ ]="String ABC";
strlwr(lan1);
Po wykonaniu instrukcji, lan1 ulega zmianie na łańcuch
"string abc".
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 7
Funkcja strlupr
char *strupr(char *s);
Zamienia w łańcuchu małe litery na duże, innych znaków nie zmienia.
Przykład. Zamiana małych liter w łańcuchu na duże.
char lan2[ ]="lancuch abc";
strupr(lan2);
Po wykonaniu instrukcji, lan2 ulega zmianie na łańcuch
"LANCUCH ABC"
.
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 8
Funkcja atoi
int atoi(const char *s);
Funkcja atoi zamienia lańcuch będący argumentem funkcji
na liczbę całkowitą, rozpoznaje ona (w zadanym porządku)
- opcjonalny łąńcuch znaków tabulacji i spacji
- opcjonalny znak
-łąńcuch cyfr
Łańcuch musi mieć następującą postać:
[ws] [sn] [ddd]
Pierwszy nierozpoznany znak kończy konwersję. Nadmiar
nie jest rozpoznawany( wynik jest nieokreślony.
Wartość zwracana
atoi zwraca liczbę całkowitą odpowiadającą łańcuchowi
wejściowemu.
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 9
Funkcja itoa
char *itoa(int value, char *string, int radix);
Funkcja zamienia liczbę będącą pierwszym argumentem
funkcji ( value) na łańcuch znaków umieszczany w tablicy znakowej
(string) będącej drugim argumentem. Konwersja odbywa się dla
podstawy systemu liczbowego podanej jako trzeci argument funkcji
(radix). Podstawa systemu musi należeć do przedziału [2,36]. Jeśli
liczba jest ujemna i podstawa systemu jest równa 10, pierwszym
znakiem łańcucha znaków jest znak '-'.
Język ANSI C – łańcuchy
Standardowe funkcje łańcuchowe cz. 10
Funkcja strchr
char *strchr(const char *s, int c);
Funkcja wyszukuje w łańcuchu znaków s znak c. Funkcja
zwraca wskaźnik do pierwszego wystąpienia znaku c. Jeśli znaku nie
ma, funkcja zwraca zerowy wskaźnik null.
Funkcja strstr
char *strstr(const char *s1,const char *s2 );
Funkcja wyszukuje w łańcuchu znaków s1 łańcuch s2. Funkcja
zwraca wskaźnik do pierwszego wystąpienia łańcucha s2 (do
pierszego znaku łańcucha s2). Jeśli łańcucha s2 nie ma, funkcja
zwraca zerowy wskaźnik null.
Język ANSI C – łańcuchy
Przykład. Wczytywanie dwuwymiarowej tablicy znaków (tablicy
łańcuchów) oraz sortowanie niemalejąco. (cz.1)
// cz. 1 programu
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main(int argc, char* argv[])
{
char stab[5][10];
char spom[10];
int i,zam;
for(i=0;i<5;i++)
{
printf("\n lan%d :",i);
scanf("%s",stab[i]); // wczytywanie tablicy znaków
// będącej wierszem tablicy dwuwymiarowej
}
for(i=0;i<5;i++)
printf("\n lan %s",stab[i]);
Język ANSI C – łańcuchy
Cz. 2 programu
do
{
zam=0;
for (i=0;i<4;i++)
if (strcmp(stab[i],stab[i+1])>0)
{ strcpy(spom, stab[i]);
strcpy(stab[i], stab[i+1]);
strcpy( stab[i+1],spom );
zam=1;
}
}
while (zam);
printf("\n\n Tablica po sortowaniu");
for(i=0;i<5;i++)
printf("\n lan %s",stab[i]);
getch();
return 0;}

Podobne dokumenty