View Full Version : Stringhe e vettori
Salve a tutti avrei un piccolo problemino. Dovrei elaborare un programma che prende una stringa in imput la inserisce in un vettore. Fatto questo dovrei prendere in esame le singole parole e attuere il cosiddetto piglatin (dog ->ogda). Essendo stato assente alle lezione non riesco a capire come intervenire sulle singole parole nel vettore ed attuare il piglatin.
Ho messo la stringa nel vettore, calcolo che non superi il limite richiesto, ma non so come modificare le singole parole.
Qualcuno un pò più competente (e ci vuole poco ad esserlo:D) mi da una mano?
P.S. Ho utilizzato la funzione strlen per contare la dimensione della stringa solo che non mi conta gli spazi. E' giusto o sbaglio qualcosa io?
In che linguaggio? :p
Potrei supporre il "C" visto che parli di strlen.
Lol si supponi giusto ho dimenticato di scriverlo :D
Ok, non so come mai dici che la strlen non ti conta gli spazi. Conta tutti i caratteri presenti nella stringa escludendo il carattere null '\0' che termina la stringa.
Ciao guarda il problema della strlen lo guarderò all'ultimo. per adesso mi interessa come intervenire nel vettore sulle singole parole. Avevo pensato di prendere tutti i caratteri nella stringa prima di un blank e copiarli in un altro vettore provvisorio. In questo modo avrei nel secondo vettore ogni parola e potrei applicare i cambiamenti. Purtroppo l'applicazione pratica è da vedersi. Dite chè c'è un modo più semplice?
P.S.
Adesso però mi sorge un dubbio..... e se nella frase c'è una virgola? il mio programma non saprebbe cosa fare. Se creassi il secondo vettore inserendo oltre allo spazio anche la punteggiatura risolverei il problema .... in teoria.
P.P.S Problema strlen risolto. Nessuno sa come faccio ora a controllare le singole parole nel vettore?
blindwrite
14-03-2006, 23:01
proprio oggi il prof al poli ci ha assegnato come esercitazione un programma molto simile a quello che hai citato, se vuoi posso postare l'implementazione che ho abbozzato oggi pomeriggio (il codice è ancora molto rude!!!)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STR 100
int ruota (char[], char [MAX_STR][MAX_STR]);
int main ()
{
int i,j,k;
char vet[MAX_STR], ruotato[MAX_STR][MAX_STR];
printf("inserisci una stringa: \n");
scanf("%s", vet);
for(k=0;vet[k]!='\0';k++){
ruotato[0][k]=vet[k];
}
//eseguo rotazione
for(j=1;vet[j]!='\0';j++){
for(i=0;vet[i]!='\0';i++){
ruotato[j][i]=vet[i+1];
}
ruotato[j][i-1]=vet[0];
ruotato[j][i]='\0';
//copio il ruotato nel vet di partenza
for(k=0;vet[k]!='\0';k++){
vet[k]=ruotato[j][k];
}
}
for(i=0;vet[i]!='\0';i++){
printf("%s\n", ruotato[i]);
}
system("PAUSE");
return 0;
}
non è esattamente quello che hai chiesto, però puoi prenderne spunto!
Si grazie mille il programma l'ho completato. In effetti il problema era che stavo creando delle funzioni da solo quando ce ne sono migliaia già fatte. Ho usato strtok() per spezzare la frase. C'era un modo ancora più semplice, ma pazienza la prossima volta che avrò più tempo mi ci dedicherò con calma. Grazie a tutti per gli aiuti, ci sentiamo al prossimo programma :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.