Salve a tutti ragazzi sono nuovo qui e sono un neofita in campo programmazione. Sto studiando da solo il linguaggio C con il libro dei fratelli Deitel. Arrivato al capitolo delle stringhe, decido di applicarmi in un esercizio che consiste nel formare delle frasi casuali. Ora il problema in se per se è anche banale ( devo prendere le parole da inserire da dei vettori di stringhe ), solo che il programma si compila tranquillamente, ma durante l'esecuzione crasha. Vorrei qualche consiglio su cosa possa far crashare il listato. Di seguito il listato scritto:
int main(){
char *article[ 5 ];
article[ 0 ] = "the";
article[ 1 ] = "a";
article[ 2 ] = "one";
article[ 3 ] = "some";
article[ 4 ] = "any";
...
char str[ 50 ];
int r = 0;
srand( time( NULL ) );
for( int i = 0; i < 2; i++ ){
r = rand() % 5;
article [ i ][ 0 ] = toupper( article[ r ][ 0 ] ); /* Credo che il programma crashi qui , dove dovrei convertire i primo carattere in maiuscolo */
printf( "%s\n", *article[ r ] );
strcpy( str, article[ r ] );
}
printf( "%s", str );
return 0;
}
Non insultatemi per qualche errore, anche grosso, perché come già detto sono un neofita. Grazie.