miercuri, 9 octombrie 2013

Șiruri de caractere cu funcții

ȘIRURI DE CARACTERE


Funii care lucrează cu șiruri de caractere (#include<string.h>)

1. Functia strlen.

Are rolul de a returna lungimea unui şir(fără a lua în considerare caracterul nul). Forma generală : strlen(nume sir);
Exemplu: Se citește un şir de caractere şi se afișează numărul de caractere a șirului

#include<iostream.h>
#include<string.h>
int main()
{
char s1[100];
cout<<”tasteaza o fraza:  ”;
cin.get(s1,100)
cin.get();
cout<<"Sirul citit este : "<<s1<<"  si are "<<strlen(s1)<<"caractere";
}


2 Functia strcpy.

Forma generală: strcpy(destinatie,sursa)

Funcția are rolul de a copia (inlocuieste ) șirul de la adresa sursa la adresa destinație.

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
   char s1[100],s2[100];           //se declara doua siruri
cout<<"tasteaza o fraza:  ";  //
cin.get(s1,100);                    //
cin.get();                               // s-a citit un sir
cout<<"tasteaza o alta fraza :  ";
cin.get(s2,100);
cin.get();
strcpy(s1,s2);
cout<<s1;
    return 0;
}
3. Functia strcat.

Forma generală:         strcat(destinație,sursă)

Funcţia are rolul de a adăuga șirului de la adresa destinație șirul de la adresa sursă.
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o alta fraza :  ";
cin.get(s2,100);
cin.get();
strcat(s1,s2);
cout<<s1;
 return 0;
}

4. Functia strncat

Forma generală:   strncat(destinație,sursă,n)

Funcția adaugă șirului destinație primii n octeți ai șirului sursă

#include <iostream>
#include<string.h>

using namespace std;

int main()
{
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o alta fraza :  ";
cin.get(s2,100);
cin.get();
strncat(s1,s2,5);  
cout<<s1;

    return 0;
}



5. Functia strchr

Forma generală strchr(nume şir, 'caracter' )

Functia căută în șirul nume şir caracterul caracter şi returnează subșirul care începe cu prima apariție a caracterului citit
#include <iostream>
#include<string.h>

using namespace std;

int main()
{
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<strchr(s1,'t');
cout<<s1;

    return 0;
}

6. Functia strrchr

Returnează adresa ultimei apariții a caracterului căutastrrchr(şir, 'caracter' )

#include <iostream>
#include<string.h>

using namespace std;

int main()
{
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<strrchr(s1,'u')-s1;  returneaza nr octetului unde se afla caracterul ‘ u’
   return 0;
}

7. Functia strcmp

Forma generală strcmp(sir1, sir2 )

Funcția are rolul de a compara 2 șiruri de caractere şi va returna valoarea:

< 0 dacă sir1<sir2

= 0 dacă sir1=sir2

> 0 dacă sir1>sir2


Exemplu Se compa șirul a cu șirul b şi se listează relația dintre cele 2 șiruri astfel:
- da primele n caractere sunt identice se compară caracterele n+1
- da caracterul n+1 al șirului a este situat alfabetic înaintea caracterului n+1 al șirului b se afișează a<b
- da caracterul n+1 al șirului a este situat alfabetic după caracterul n+1 al șirului b se afișează a>b
- da primul caracter al șirului a este situat alfabetic înaintea primului caracter al șirului b se afișează a<b
indiferent de lungimea celor 2 șiruri
- da primul caracter al șirului a este situat alfabetic după primul caracter al șirului b se afișează a>b
indiferent de lungimea celor 2 șiruri

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o fraza:  ";
cin.get(s2,100);
cin.get();
int semn;
 semn=strcmp(s1,s2);
if(semn<0) cout<<"s1 < s2";
else
if(semn>0) cout<<"s1 > s2";
else cout<<"s1= s2";

   return 0;
}


8. Functiile strlwr ş i struwr

strlwr(s1) - convertește toate literele șirului s1 în litere mici struwr(s2) - convertește toate literele șirului s2 în litere mari

#include <iostream>
#include<string.h>
#include <stdio.h>

using namespace std;

int main()
{
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o fraza:  ";
cin.get(s2,100);
cin.get();
cout<<strupr(s1)<<endl<<strlwr(s2);

   return 0;
}

9. Functia strstr

Forma generală: strstr(sir1,sir2)

Funcția identifică dașirul sir2 este subșir al șirului sir1
#include <iostream>
#include<string.h>
#include <stdio.h>
using namespace std;

int main()
{
   char *a;
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o fraza:  ";
cin.get(s2,100);
cin.get();
 a=strstr(s1,s2);   //returneaza subsirul s2 din s1
puts(a);             //afiseaza de la subsirul gasit
   return 0;
}


10. Functia strcspn

Forma generală: strcspn(s1,s2)

Funcția returnează numărul caracterelor din șirul s1 care nu se găsesc în șirul s2

#include <iostream>
#include<string.h>
using namespace std;

int main()
{
   int a;
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o fraza:  ";
cin.get(s2,100);
cin.get();
 a=strcspn(s1,s2);   //returneaza numarul caracterelor din  s1 si nu sunt in s2
cout<<a;
   return 0;
}

11. Functia spn

Forma generală: strspn(s1,s2)

Funcția returnează numărul caracterelor din șirul s1 care se găsesc în șirul s2

#include <iostream>
#include<string.h>
#include <stdio.h>
using namespace std;

int main()
{
   int a;
   char s1[100],s2[100];
cout<<"tasteaza o fraza:  ";
cin.get(s1,100);
cin.get();
cout<<"tasteaza o fraza:  ";
cin.get(s2,100);
cin.get();
 a=strspn(s1,s2);
cout<<a;
   return 0;
}

12. FUNCTII UTILIZATE PENTRU CONVERSIA VALORILOR NUMERICE în  SIR

La utilizarea acestor funcții se introduce directiva #include<stdlib.h>

a) Funcția atof - convertește un şir către tipul double

b) Funcția atold - convertește un şir către tipul long double

#include <stdlib.h>
#include <iostream.h>
void main()
{
float f;
char *str = "12345.67" f = atof(str);
cout<<"string = "<<str<<endl<<"float = "<< f;
}

c) Funcția atoi - convertește un şir către tipul int

d) Funcția atol - convertește un şir către tipul long

Exemplu
#include <stdlib.h>
#include <iostream.h>
void main()
{
int n;
char *str = "12345.67" n = atoi(str);
cout<<"string = "<<str<<endl<<"float = "<< n;
}

e) Funcția ecvt - convertește o valoare double către un sir f) Funcția itoa - convertește o valoare de tip int către un sir

g) Funcția ltoa - convertește o valoare de tip long int către un sir

Niciun comentariu:

Trimiteți un comentariu

Pointeri

  Prezentare generală  Un pointer este o variabilă care are ca valoare  o adresă din memoria internă a calculatorului  , această adresă ap...