39010

39010



133


OPERACJE NA ŁAŃCUCHACH

int main(void) { char str[100]; int cmp;

fputs("Podaj ciąg znaków: ", stdout); fgets(str, sizeof str, stdin);

if (!3trncmp(8tr, "foo", 3)) {

putsCPodany ciąg zaczyna sie od ’foo'.");

>

return 0;

>

Kopiowanie napisów

Do kopiowania ciągów znaków służy funkcja stropy, która kopiuje drugi napis w miejsce pierwszego. Musimy pamiętać, by w pierwszym łańcuchu było wystarczająco dużo miejsca.

char napis[100]; strcpyfnapis, "Ala ma kota.");

Znacznie bezpieczniej jest używać funkcji stmcpy, która kopiuje co najwyżej tyle bajtów ile podano jako trzeci parametr. Uwaga! Jeżeli drugi napis jest za długi funkcja nie kopiuje znaku nuli na koniec pierwszego napisu, dlatego zawsze trzelta to robić ręcznie:

char napis[100];

strncpyfnapis, "Ala ma kota.", sizeof napis - 1); napis [sizeof napis - 1] - 0;

Łączenie napisów

Do łączmia napisów służy funkcja streat, która kopiuje drugi napis do pierwszego. Po iiownie jak w przypadku strepy musimy zagwarantować, by w pierwszym łańcuchu było wystarczająco dużo miejsca.

iinclude <stdio.h>

Sinclude <string.h>

int main(void) { char napisl[80] ■ "hello "; char *napis2 ■ "world"; streat(napisl, napis2); puts(napisl); return 0;

>

I ponownie jak w przypadku strepy istnieje funkcja strncat, która skopiuje co najwyżej tyle bajtów ile podano jako trzeci argument i dodatkowo dopisze znak nuli. Przykładowo powyższy kol ł>ezpieczniej zapisać jako:

•include <stdio.h> sinclude <string.h>



Wyszukiwarka

Podobne podstrony:
image021 3. W systemie Windows uruchamiamy proces pl. a następnie na drugiej konsoli proces p2: void
134 ROZDZIAŁ 18. SA PISY int main(void) { char napisl[80] - "hello char *napis2 ■
2. PODSTAWOWE OPERACJE NA ŁAŃCUCHACH ZNAKOWYCH
Ciąg znaków języka C #include<st ring.h> char str[100]; strncpy( str, "hello", memcp
SDC11488 Phk Edytuj Widok Ntrzędai U ft mera a Pomoc°«WM 0 tfincludc <*tdio.h> int main(void){
PB210045 /"‘Działanie operacji ++*/ //include <stdio.h> void main(void) { int a,b,c,
image045 3. W systemie Windows urocliamiamy proces pl. a następnie na drogiej konsoli proces p2: voi
image013 W Windows pracują współbieżnie dwa procesy.zablokowany?_ CEvent e; int main(void) { CSingle
int main(void) { double fl = 2 * 3.1415926; double f2 = 3.1415926; printf("%f, %f

cz7 Programowanie Listing 57— wykorzystanie funkcji printf int main(void) l ■int a - 1234; int b

więcej podobnych podstron