RSS

Strcpy, strchr, strstr

12 Oct

Strcpy (s1, s2);

Strcpy, pentru atribuire

Efectul acestei functii este ca la adresa din memorie asociata variabilei/stringului S1 se copie ceea ce sa gaseste la adresa asociata variabilei S2. Practic se copie stringul S2 caracter cu caracter, inclusiv marcatorul de sfarsit;

char s1[]="Anamaria", s2[]="Anne-Marie"; strcpy(s1,s2); cout<<s1;

S1 contine caracterele “Anne-Marie” si ‘/n’ la sfarsit.

Un exemplu de folosire ar putea fi:

char voc[10]; strcpy(voc,"aeiouAEIOU");

Strcpy, pentru stergere

Conform definitiei, de fapt se realizeaza o copiere de la o adresa la alta. Atunci, putem utiliza STRCPY pentru a sterge/modifica un string.

Stergerea primului caracter

strcpy(s,s+1);

Daca S ar contine cuvantul “Anamaria”, atunci cuvantul de la adresa S+1 ar fi “namaria”. Acesta va fi copiat incepand cu pozitia 0.

Stergerea ultimului caracter

Reamintim ca prima pozitie din string este 0 si ultima pozitie folosita este N-1 (astfel sunt N pozitii). Atunci, marcatorul de sfasit de cuvant se gaseste pe pozitia N. Stergerea ultimului caracter se face fie memorand marcatorul de sfarsit de string la poz N-1, fie copiind stringul de la adresa S+N la adresa S+N-1.

char s[]="Anamaria"; int N=strlen(s); strcpy(s+N-1,s+N); cout <<s;

sau

char s[]="Anamaria"; int N=strlen(s); s[N-1]=0; cout<<s; //sau s[N-1]=''/n";

Stergerea unui caracter oarecare, din pozitia i

In concordanta cu cele doua exemple anterioare, pentru a sterge elementul de la pozitia I, trebuie sa copiem la adresa S+I stringul care incepe in pozitia I+1.

strcpy(s+i,s+i+1);

Problema.

Fie S un sir de caractere in care sunt spatii inutile ( gen ”      Ana      are      mere    .     “).

  1. Sa se stearga spatiile inutile de la inceput
  2. Sa se stearga spatiile inutile de la sfarsit
  3. Sa se stearga spatiile inutile din interior

Rezolvarea pct 1.

while (s[0]==' ') strcpy(s,s+1); //cat timp primul caracter (s[0]) este spatiu, il sterg

Rezolvarea pct. 2

n=strlen(s); while (s[n-1]==' ') { strcpy(s+n-1, s+n); n--;} //odata cu stegerea ultimului spatiu, actualizez si N, numarul de caractere

O rezolvare a pct. 3

 

 

 

One response to “Strcpy, strchr, strstr

  1. Anndrei02

    19/09/2016 at 18:44

    Buna ziua,

    Va multumesc pentru aceste materiale educationale,care m-au ajutat sa inteleg mult mai bine informatica.
    Pacat ca nu toti profesorii predau materia la fel de bine!Sper sa reusiti sa puneti in curand si celelalte lectii.

    Va multumesc.

     

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: