Funcții populare de șiruri în C [cu exemple]

Publicat: 2020-10-21

Șirurile în limbajul C sunt o matrice de caractere terminate cu caractere nule ('\0'). Caracterul nul de la sfârșitul unui șir indică sfârșitul acestuia, iar șirurile sunt întotdeauna cuprinse între ghilimele duble. În limbajul C, caracterele sunt cuprinse între ghilimele simple. Câteva exemple din ambele prezentate mai jos;

Exemplu sau Reprezentare de caractere C și șiruri

  • șir de caractere[10] = { 's','d','f','d','t','j','a','\0' };
  • char string[10]=" mai proaspăt";
  • char string[]=" mai proaspăt";

Există o diferență minoră între declarațiile șirurilor din ambele declarații de mai sus. La fel ca atunci când declarăm char ca șir[10], 10 octeți de spațiu de memorie sunt alocați pentru a păstra cele 10 valori ale șirului, în timp ce atunci când îl declarăm ca șir[], atunci memoria este alocată în momentul execuției programului.

Cuprins

Declarație și inițializare șiruri

În programarea C, șirurile pot fi declarate în două moduri, așa cum se arată mai sus. În programarea C, un șir este o secvență de caractere care se termină cu un caracter nul sau „\0”. Un exemplu de același lucru este dat mai jos:

char temp[]=" șir temp”;

Când un șir de caractere este declarat de tip char care este cuprins între ghilimele duble, atunci \0 este adăugat automat la sfârșitul șirului. De exemplu:

char temp[]=" șir temp”;

t e m p s t r i n g \0

Declarație șir

Un șir în limbajul C este declarat în felul următor:

char temp[5];

s[0] s[1] s[2] s[3] s[4]

În acest fel, putem inițializa un șir de lungime 5.

Inițializarea șirurilor

Inițializarea șirurilor se poate face în mai multe moduri, iar unele dintre ele sunt prezentate mai jos:

char t[]=" șir temp”;

char t[10]=" șir temp”;

char t[]={'t','e','m', 'd','\0'};

char t[5]={'t','e','m', 'd','\0'};

T e m p \0

t[0] t[1] t[2] t[3] t[4]

În tipul de declarație de mai sus, putem stoca doar șirurile care au doar patru caractere, în timp ce dacă doriți să stocați cinci caractere într-un astfel de șir sau matrice, atunci este posibil să aveți nevoie de matricea de caractere de mai multă lungime.

Citiți: String Array În Java: Java String Array cu exemple de codare

Atribuirea valorilor șirurilor

Matricele și șirurile de caractere nu acceptă operatorii de atribuire. Odată ce șirurile sunt declarate, nu puteți aloca valorile variabilelor de tip șir. De exemplu, în limbajul C nu putem scrie și atribui valorile în felul următor:

char t[100];

t=”valoarea temperaturii”;

Manipularea șirurilor în C

Acum vom include câteva dintre funcțiile populare de șir în C care fac manipularea șirurilor destul de ușoară. Operațiuni multiple pe șir, cum ar fi citirea șirului, copierea sau inversarea șirului și multe alte operațiuni pot fi efectuate cu ușurință pe șiruri prin utilizarea acestor funcții.

Operatorii șiruri sau funcțiile șir pot fi utilizați direct pentru a manipula șirurile. Aici, în acest articol vom explica funcțiile bibliotecii precum gets(), puts(), strlen(), strcopy() și multe altele pentru a explica gestionarea șirurilor în C.

Uneori, programatorii trebuie să scrie funcțiile șir pentru a le manipula conform problemei necesare. Cu toate acestea, manipularea șirurilor se poate face manual, dar acest lucru poate face programarea destul de complexă și mare.

Există o bibliotecă standard de funcții șir în C care este cunoscută sub numele de „string.h”. Acest fișier antet cu extensia „.h” are multe funcții de gestionare a șirurilor care au sintaxă diferită. Vom discuta câteva dintre ele în secțiunea de mai jos a acestui articol:

Lista unor funcții comune de gestionare a șirurilor în C

Funcţie Descriere
strlen() Poate calcula lungimea șirului
Strcpy() Poate copia conținutul unui șir în altul
Strcat() Este folosit pentru a concatena sau a uni două șiruri
Strcmp() Poate compara două șiruri
Strlwr() Poate converti șirul în minuscule
Strupr() Este folosit pentru a converti literele șirului în majuscule
Strrev() Este folosit pentru a inversa șirul

Când trebuie să utilizați oricare dintre funcțiile de gestionare a șirurilor din programul dvs., funcțiile nu se limitează doar la acestea. Există și multe alte funcții. Deci, hai să le discutăm:

1) pune() și primește()

Cele două funcții populare ale fișierului antet șir gets și puts sunt folosite pentru a prelua intrarea de la utilizator și, respectiv, pentru a afișa șirul. Ambele funcții sunt definite în fișierul string.h. Să vedem un exemplu de aceste funcții:

#include main()

Int main()

{

char temp[20];

printf(„Introduceți numele”);

obţine(temp);

printf(„Numele meu este: ”);

pune(temp);

returnează 0;

}

2) strcat()

Pentru cazurile în care un șir trebuie adăugat la sfârșitul altui șir, se folosește această funcție. Funcția strcat poate adăuga o copie a șirului sursă la sfârșitul șirului destinație. Utilizatorul trebuie să transmită două argumente care sunt descrise mai jos:

i) src

ii) dest

Aici la locul lui „src” se specifică șirul, în timp ce la locul „dest” este specificat șirul de destinație în care trebuie să atașăm șirul sursă.

Exemplu

#include<string.h>

int main()

{

char src[20]= „înainte”;

char dest[20]= „după”;

strcat(dest, src);

pune(dest);

returnează 0;

}

Ieșirea va fi: după înainte

3) Funcția strlen()

O altă funcție a fișierului antet șir care poate fi utilizată direct pentru șiruri este strlen(). Puteți folosi funcția strlen(), funcția șir în C , atunci când trebuie să aflați lungimea oricărui șir. Cu toate acestea, se poate scrie și manual un program pentru a afla lungimea oricărui șir, dar utilizarea acestei funcții directe vă poate economisi timp și exemplul este dat mai jos:

#include<stdio.h>

int main()

{

lungime int;

char s[20] = „Suntem aici”;

lungime=strlen(e);

printf(„\Lungimea șirului este = %d \n”, lungime);

returnează 0;

}

Lungimea șirului este = 11

4) Funcția strcpy()

Dacă trebuie să copiați conținutul unui șir într-un alt șir, atunci această funcție este utilizată. Sintaxa funcției este strcpy(dest,source). Funcția poate copia conținutul unui șir în altul. Un exemplu de funcție este dat mai jos:

#include<string.h>

int main()

{

char src[20]= „Destinație”;

char dest[20]= „”;

printf(„\n șirul sursă este = %s”, src);

printf(„\n șirul de destinație este = %s”, dest);

strcpy(dest, src);

printf (“\ntarget string dupa strcpy() = %s”, dest);

returnează 0;

}

Ieșire

Șirul sursă este = Destinație

Șirul țintă este =

Șir țintă după strcpy() = Destinație

Aflați: StringBuffer vs. StringBuilder: Diferența dintre StringBuffer și StringBuilder

5) Funcția strcmp()

Pentru a compara două șiruri de caractere pentru a ști dacă sunt aceleași sau nu, putem folosi funcția strcmp(). Funcția returnează o valoare definită care poate fi fie 0, >0 sau <0. În această funcție, cele două valori transmise sunt tratate ca și majuscule, ceea ce înseamnă că „A” și „a” sunt tratate ca litere diferite. Valorile returnate de funcție sunt folosite ca:

i) 0 este returnat când două șiruri sunt identice

ii) Dacă str1<str2, atunci este returnată o valoare negativă

iii) Dacă str1>str2, atunci este returnată o valoare pozitivă

Exemplu:

#include<stdio.h>

#include<string.h>

int main()

{

char str1[]="copiere";

char str2[]=”Trofeu”;

int I,j,k;

i=strcmp(str1, „copie”);

j=strcmp(str1, str2);

k-strcmp(str1, „f”);

printf(“\n %d %d %d”,I,j,k);

returnează 0;

}

Ieșire: 0 -1 1

6) Funcții strlwr() / strupr()

Uneori poate fi necesar să convertiți literele mici ale oricărui șir în majuscule sau invers. În acest scop există două funcții de șir directe în C , ele pot fi folosite pentru a efectua conversii fie de la litere mari la minuscule, fie invers. Aici, am explicat un exemplu de același lucru:

#include<stdio.h>

#include<string.h>

int main()

{

char str[]=”CONVERTĂ-mă la minuscule”;

printf(„%s\n”, strlwr(str));

returnează 0;

}

Ieșire: convertiți-mă la litere mici

În mod similar, dacă vom folosi funcția strupr în locul strlwr, atunci tot conținutul va fi convertit în litere mari. Putem folosi funcția strupr, definită în fișierul antet șir. Prin această funcție, toate literele șirului sunt convertite, și asta fără nicio procedură manuală lungă.

7) Funcția strrev()

Dacă doriți să inversați orice șir fără a scrie manual niciun program uriaș sau extins, atunci puteți utiliza această funcție. Funcția strrev() este folosită pentru a inversa conținutul șirului. Funcția Strrev este folosită pentru a verifica natura șirului, dacă șirul dat este un palindrom sau nu. Mai multe alte utilizări și aplicații sunt, de asemenea, prezente ale funcției de inversare a șirului. Una dintre utilizările sale este prezentată mai jos:

#include<stdio.h>

#include<string.h>

int main()

{

char temp[20]="Reverse";

printf(„Șirul înainte de inversare este: %s\n”, temp);

printf(„Șir după strrev():%s”, strrev(temp));

returnează 0;

}

Mai multe funcții de manipulare a șirurilor cu scop:

După cum am spus mai devreme, că există mai multe funcții de șir în C. Alte funcții utilizate în mod obișnuit pentru gestionarea șirurilor în C sunt:

Funcţie Scop
strchr() Returnează un pointer la prima apariție a lui char în str1
strdup() Poate duplica șirul
strset() Setează toate caracterele unui șir la caracterul dat
strrchr() Folosit pentru a localiza apariția unui prim caracter indicator

Citește și: Clasa de scaner în Java: tipuri de constructori și metode, cum se utilizează

Cuvinte finale

La fel ca orice altă limbă C, are și o bibliotecă vastă de funcții gata de utilizare sau încorporate. Pentru a gestiona orice șir de caractere, puteți utiliza aceste funcții direct. Cu toate acestea, funcțiile nu se limitează la acestea. Există multe alte funcții șir în C în fișierul antet. Beneficiul major al acestora este reducerea timpului și a duratei codificării.

Dacă sunteți interesat să aflați mai multe despre Java, POO și dezvoltarea de software full-stack, consultați Diploma PG de upGrad și IIIT-B în Dezvoltare de software Full-stack, care este concepută pentru profesioniști care lucrează și oferă peste 500 de ore de formare riguroasă, 9 + proiecte și sarcini, statutul de absolvenți IIIT-B, proiecte practice practice și asistență pentru locuri de muncă cu firme de top.

Pregătiți-vă pentru o carieră a viitorului

ÎNVĂȚARE DE ÎNCREDERE ÎN INDUSTRIE - CERTIFICARE RECUNOSCĂ ÎN INDUSTRIE.
Aflați mai multe