Procesarea variabile de caractere si string - viata-prog

Pentru a reprezenta un caracter (litere) folosind tipul char. Valoarea de tip char este codul în tabelul ASCII, care corespunde caracterului dat. Că tipul implicit char este interpretată ca o valoare întreagă pe un singur octet cu semn, apoi o serie de valori ale variabilei -128-128, deși numai valori cuprinse între 0 și 127 sunt echivalente simbolice. Variabilele de tip unsigned char poate orpedelyat valori variind de 0-255.

Constantele simbolice sunt în apostrofuri. Variabilele simbolice pot fi fie un constantele de caractere, care pot fi imprimate, sau constantele de control, cum ar fi: char a = „A“, f = „\ n“;

O constantă șir este o secvență de caractere închise în ghilimele ( „), cum ar fi“ aceasta este prima mea șir de caractere. " La sfârșitul fiecărui tip șir de compilator adaugă un caracter nul, reprezentat de constanta de gestionare \ 0.

variabilă String descris ca char st [12], paranteze pătrate indică lungimea rând. Aceasta înseamnă că variabila string - un șir de caractere, iar numerotarea elementelor din matrice începe de la zero, iar numărul de intrări este egal cu numărul de caractere plus unu.

constantele șir pot fi aranjate în mai multe rânduri. Pentru formarea unor astfel de constante șir pot fi folosite backslash și apoi apăsând Enter. Această linie este considerată o continuare a celui anterior, de exemplu, un șir de caractere:

Naya șir de caractere "

Este identic cu șirul de caractere „Acesta este un șir foarte lung de caractere.“

Pentru o descriere a variabilei șir, puteți utiliza conceptul de matrice de caractere sau un pointer (referință) la un tablou de caractere, de exemplu:

mas char [15]; char * st;

Pentru tipul de caractere / șir de dnnyh de intrare / ieșire poate folosi nu numai o printf () și scanf (), dar, de asemenea, o serie de alte funcții, care sunt descrise prototipuri s fișier bibliotecă stdio.h, de exemplu, puts (), Puchar (), devine ( ), getchar ().

putchar Functia int (char c) afișează un singur caracter la stdout standard de flux de ieșire, fără trecerea ulterioară la o nouă linie.

Getchar Funcția int () este folosită pentru a introduce următorul caracter din stdin standard de intrare. Această funcție nu are nevoie de nici opțiunea set și are o valoare de tip întreg. Dacă intrarea standard reatribuirea nu a fost, atunci următoarea intrare de la tastatura Xia; atunci când introduceți fișierul atribuit fluxul de intrare, numele său este specificat în linia de comandă atunci când apelați programul, de exemplu:

Funcția int Sunt puse (char * st) este utilizat pentru a obține un șir de caractere la ieșirea standard. șirul de caractere este completat de o linie nouă „\ n“, și după retragerea unui șir de caractere puts () funcție, o nouă linie automat.

Funcția char * devine (char * st) citește de la intrarea standard. Introducerea continuă până până la apăsarea tastei Enter. Această caracteristică completează șirul de caractere introduse de „\ 0“.

Dacă numărul este reprezentat ca un șir de caractere, este posibil să se utilizeze atoi funcțiile int (șir de caractere), atolul lung (șir de caractere), atof dublu (șir de caractere) pentru a converti șiruri respectiv la număr întreg, întreg lung sau un număr real. Prototipurile acestor funcții sunt descrise în fișierul bibliotecă stdlib.h. Dacă șirul nu poate fi convertit la un număr, se întoarce la zero.

In C ++, există un grup de operatori care să opereze cu variabile simbolice (tabelul. 8), care sunt descrise în fișierul ctype.h boot.

Operatorii de a lucra cu variabile de caractere

Funcția convertește un caracter la literă mică

Pentru a lucra cu un șir de caractere din fișierul string.h descrie prototipuri de mai multe funcții. Biblioteca este posibila copie (strcpy, strncpy), comparând (strcmp, strncmp), concatenare string (strcat, strncat), subpattern (strstr), intrarea de caractere de căutare (strchr, strrchr, strpbrk), determinarea lungimii șirului (strlen) și t .D. și conține, de asemenea, caracteristici speciale de siruri de caractere de intrare și de caractere individuale de la tastatură și de la dosar.

= "Kuku"; // passw - parola de referință.

// Poate fi descris ca * passw = „kuku“

pentru (i = 0 k ;! eu<3; i++)

devine (s); // funcție de șirul de intrare

if (strstr (s, passw)) k = 1; // functie pentru a compara siruri de caractere

în cazul în care (k) printf ( "\ n Password Accepted");

altfel printf ( „\ n parola nu este acceptată“);

Trebuie amintit că operațiunea de atribuire într-o altă linie nu este definită (ca un șir de caractere este o matrice) și poate fi realizată cu ajutorul unui ciclu sau o funcție de biblioteca standard. linia de proces scr într-un rând dest ilustrat prin următorul exemplu:

char scr [10], dest [10];

pentru (int i = 0; i<=strlen(scr); i+) dest[i]=scr[i];

// alocarea dinamică a memoriei în grămadă.

char * dest = chat-[10], * d = dest;

* D = 0; // oprire ciclu de stare