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!