|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1118
|
[C]Funzione che elimina le lettere ripetute da una parola
Codice:
#include <stdio.h>
void main () {
char ptext;
char ctext;
int i,n,c=0;
scanf("%s",ptext);
n=strlen(ptext);
printf("Chiave:%s\nDimensione:%d",ptext,n);
for (i=1;i<n;i++)
{
for(n=i;n>=0;n--)
{
if(i!=n && ptext[i]==ptext[n]) //
break;
else
{
ctext[c]=ptext[i]; //
c++;
}
}
}
printf("\n%s",ctext);
}
ho dei problemi con 2 righe dove ho messo il commento vuoto,mi serve una funzione per confrontare e modificare un carattere di una stringa dato l'indice Vi ringrazio anticipatamente |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
il problema è che tu memorizzi delle stringhe in delle variabili char, invece che char*
|
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 168
|
E se non ricordo male dovrebbe darti errore o warning anche il primo scanf visto che non passi un puntatore a scanf ma una variabile.
Questa volta era facile ma ti posso consigliare di dire cosa succede esattamente al posto di dire "Ho dei problemi con le due righe"? Così le risposte saranno più rapide. ^^ |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
|
Quote:
ah quanto amo il C....non smetterò mai di leggere il K&R |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Già che ci siamo, ricorda di controllare che i char * siano allocati, sennò non ci fai niente.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1118
|
nelle 2 righe indicate effettuo delle operazioni su singoli caratteri all'interno di una stringa,in una cerco di fare un confronto e in un altra un assegnazione.Mi pare di aver capito che per effettuare queste operazioni devo creare dei puntatori ed andare a fare le modifiche e i confronti con quelli e non direttamente con la stringa
Possibile che in internet non si trova un programmino in c che mi elimina le lettere ripetute da una parola?Ne ho trovato uno in c++ dove fa le operazioni con i vettori come ho fatto io,solo che in c non si può fare |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 168
|
Allora... a te servono due puntatori a caratteri, uno che conterrà la parola originale e uno che conterrà la parola modificata.
L'unica cosa che devi fare col primo puntatore è passarlo a scanf, mentre col secondo devi usare la funzione chiamata malloc passandole la dimensione di cui creare la stringa. Per il tuo caso ad esempio la grandezza della stringa originale+1 sarebbe fantastica. Infine potrai usare i due puntatori come vettori facendo ptext[i]==ctext[j] ad esempio. A te trasformare queste informazioni in codice. PS: strlen(char*) è la funzione per la la lunghezza di una stringa. PPS: con "scrivere cosa succede esattamente" intendevo i warning e gli errori che ti dà il compilatore e cosa succede durante l'esecuzione ^^ |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:52.



















