Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Si scriva un programma C che:
- a. Acquisisca una stringa di massimo N caratteri (con N valore costante)
- b. Ne manipoli il contenuto
- i. Trasformando tutte le lettere minuscole in maiuscole
- ii. Rimpiazzando tutti i caratteri non alfanumerici con il carattere ‘_’
- iii. Sostituendo i caratteri numerici con il carattere ‘*’
- c. Scandisca la stringa manipolata per contare quante parole sono
- presenti al suo interno, considerando una o più occorrenze del
- carattere ‘_’ come separatore tra parole. */
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #define N 1024
- int main()
- {
- int i, max=0, P, k;
- char risp='s', a;
- char stringa[N+1];
- char pstringa[N+1];
- /*Inizio/reinizio esercizio*/
- while(risp=='s'){
- P=0;
- /*Carico caratteri*/
- printf("\nInserisci una frase di massimo %d caratteri\n", N);
- for(i=0; (stringa[i]=getchar())!='\n'; i++);
- stringa[i]='\0';
- printf("\nelementi immessi:\n");
- printf("%s", stringa);
- /*trova la lunghezza max della stringa*/
- max=strlen(stringa);
- /*manipolazione contenuto*/
- for(i=0; i<max; i++){
- /*converte minuscole in maiuscole*/
- if(islower(stringa[i])) stringa[i]= toupper (stringa[i]);
- /*sostituisce caratteri alfanumerici con '_' */
- else if(!isalnum(stringa[i])) stringa[i]='_';
- /*sostituisce i caratteri numerici con '*' */
- if(isdigit(stringa[i])) stringa[i]='*';
- }
- /*conta le parole*/
- for(i=0, k=0; i<max; i++, k++){
- /*copia carattere per carattere e salta alla fine della parola*/
- while(isalpha(stringa[i])) {pstringa[k]=stringa[i]; i++; k++;}
- P++;
- /*salta alla fine dei caratteri '_' */
- while(stringa[i]=='_') i++;
- k++;
- pstringa[k-1]=stringa[i-1];
- }
- printf("\nstringa composta da %d parole\n", P);
- printf("%s", pstringa);
- /*reiniziare*/
- printf("\nsi desidera reiniziare? (s = SI!)\n");
- scanf("%1s", &risp);
- if(risp=='s') system("cls");
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement