ciao ci sono riuscito!
using namespace std;
#include <iostream>
const int l=20;
struct parola{
char s[l+1];//l'uno in piu è per il terminatore
};
int main(){
char stringa[]={"ciao mamma come stai? io abbastanza bene, che mi racconti di bello? ieri sera sono andato"};
int n=strlen(stringa)+1;
n/=l;
n++;//dato che la divisione è fra interi devo prevedere che ci sia resto, quindi se non aumento l'ultimo pezzo di stringa viene taglito
parola *p=new parola[n];
for(int i=0;i<n;i++)
{
for(int k=0;k<l;k++)
{
if (stringa[k+i*l]!='\0')//questo evita che ci sia overflow
{
p[i].s[k]=stringa[k+i*l];
}
}
p[i].s[l]='\0';
}
cout<<"ORIGINALE=\t\t"<<stringa<<endl;
for(int i=0;i<n;i++)
{
cout<<"STRINGA "<<i<<"\t\t"<<p[i].s<<endl;
}
return 0;
}
e questo è l'output:
ORIGINALE= ciao mamma come stai? io abbastanza bene, che mi racconti di bello? ieri sera sono andato
STRINGA 0 ciao mamma come stai
STRINGA 1 ? io abbastanza bene
STRINGA 2 , che mi racconti di
STRINGA 3 bello? ieri sera so
STRINGA 4 no andato
se qualcosa non è chiaro chiedi pure!