Puoi dirmi cosa ne pensi di queste?
	codice:
	//Prende come parametro una stringa ed un carattere e restituisce il numero
// di occorrenze del carattere nella stringa.
#include <iostream>
//#include <string>
#include <ctime>
#include <cmath>
#include <cstdlib>
using namespace std;
string occorrenze (string a, char b)
{
    int dim=a.length();
    int conta=0;
    for (int i=0; i<dim; i++)
{
    if(a[i]==b)
{
    conta++;
}
}
 cout<< conta;
}
int main ()
{
    string a;
    cin>> a;
    char b;
    cin>> b;
    cout << occorrenze(a, b);
    return 0;
}
 
	codice:
	//Riceve una stringa come parametro e, se essa ha lunghezza >=2, scambia il primo carattere
//con l'ultimo e stampa la stringa, altrimenti non fa nulla;
#include <iostream>
#include <string>
#include <ctime>
#include <cmath>
#include <cstdlib>
using namespace std;
string stringa (string a)
{
int dim = a.length ();
if (dim >=2)
{
int scambio= a[0];
a[0]=a[dim-1];
a[dim-1]=scambio;
}
return a;
}
int main()
{
// sdrand(time(NULL));
string a;
   cin>>  a;
   cout<<stringa(a);
   return 0;
   }
 
	codice:
	//Prende una stringa come parametro e scambia la prima metà con la seconda;
#include <iostream>
#include <string>
#include <ctime>
#include <cmath>
#include <cstdlib>
using namespace std;
string stringa (string a)
{
    int dim=a.length();
    int b=dim/2;
    int c=dim/2+1;
    if (dim%2==0)
{
    for (int i=0; i<dim/2; i++)
{
    int scambio =a[i];
    a[i]=a[b];
    a[b]= scambio;
    b++;
}
return a;
}
else
{
    for (int i=0; i<dim/2; i++)
    {
        int scambio=a[i];
        a[i]=a[c];
        a[c]=scambio;
        c++;
    }
    return a;
}
}
int main ()
{
    string a;
    cin>> a;
    cout << stringa (a);
    return 0;
}