Appunti sulle Stringhe

Transcript

Appunti sulle Stringhe
Stringhe in C /C++
Equivalenza stringhe/Vettore di caratteri
getline at
Terminazione di una stringa
Concatenazione di una stringa
Auto +mobile=Automobile
Esercizi sulle stringhe
Carattere di terminazione di una stringa \0
char parola[50];
A u t o m o b i l e \0
0 1 2 3 4 5 6 7 8 9 10
parola[10]=’\0’;
parola=”Automobile”;
// in C
#include <string.h>
//in C++
#include <string>
// Contare le lettere a in una stringa (vettore di
// caratteri alla C
main ()
{
char parola[50]=”casolare”;
int cont=0;
char da=’a’;
int i=0;
while ( parola[i]!=’\0’) {
if (parola[i]==da)
cont++;
i++;
}
cout<<” Trovate “<< cont << “ occorenze di
a”<<endl;
}
Provare a variare leggendo il carattere e la parola
da tastiera e stampando la lunghezza della parola
#include <string>
main ()
{
string parola;
parola=”casa”;
string nome;
cout “Quale nome “<<endl;
cin>>parola;
}
Metodi della stringa
length // lunghezza di una stringa
cout << parola.length();
empty // restituisce true se la stringa vuota
// concatenazione si fa col +
string prima, seconda, terza;
prima=”auto”; seconda=”mobile”;
terza=prima+seconda; // automobile
// charAt di Java corrisponde at
// Contare le lettere a in una stringa (vettore di
// caratteri alla C++
parola[i] -> parola.at(i)
main ()
{
string parola=”casolare”; // cin>>parola;
char da=’a’;
int i=0, cont=0;
while (i<parola.length()){ // parola.at(i)!=’\0’
if (parola.at(i)==da)
cont++;
i++;
}
cout<<” Trovate “<< cont << “ occorenze di
a”<<endl;
}
// Lettura di una stringa
cin>> parola; // legge fino al primo spazio
cin.getline (titoloLibro,50);
lunghezza massima
cin.getline (titoloLibro,50,’*’);
carattere fine stringa
ciao
// legg. con cin
ciao a tutti // legg. con cin.getline
Altri metodi
insert find replace substr
string parola=”Paolo Rossi”
insert(int startpos, string s)
parola.insert (6,”Francesco “);
cout<<parola; // Paolo Francesco Rossi
string parola=”Paolo Rossi”
substr(int start, int num)
string nome=parola.substr (0,5);
cout<<nome; // Paolo
string nome=parola.substr(6,5);
cout <<nome; // Rossi
replace(int start, int num, string s)
string parola=”Paolo Rossi”;
parola.replace (0,5,”Marco”);
cout<<parola; // Marco Rossi
find(string s, int startSearch)
string frase=”La mia casa è vicina alla tua casa”;
int x=frase.find(”casa”,0);
cout<<x; // 7
int y=frase.find(”casa”,10);
cout<<y; // 31
if (y==-1)
cout<< ”Parola non trovata”<<endl;
// Contare quante volte la parola casa è presente
// in una frase
#include <iostream>
#include <string>
using namespace std;
int main()
{
// la funzione getline vuole un array stile C che
//poi può essere assegnato ad una stringa
char frasechar[100];
string frase;
string parola=”casa”;
cout<<”Inserisci una frase “<<endl;
cin.getline(frasechar,100);
frase=frasechar;
int cont=0;
int x;
x=frase.find(parola,0);
while (x!=-1){
cont++;
x=frase.find (parola,x+parola.length());
}
cout<<”Trovate “<<cont <<“ occ. della parola
casa”<<endl;
return 0;
}