C mi disturba con la gestione delle stringhe. Ho un pseudocodice come questo nella mia mente:Trovare elementi univoci in un array di stringhe in C
char *data[20];
char *tmp; int i,j;
for(i=0;i<20;i++) {
tmp = data[i];
for(j=1;j<20;j++)
{
if(strcmp(tmp,data[j]))
//then except the uniqueness, store them in elsewhere
}
}
Ma quando ho codificato questo i risultati sono stati male (ho gestito tutta la roba di memoria, piccole cose, ecc) Il problema è nel secondo ciclo, ovviamente:. D . Ma non posso pensare a nessuna soluzione. Come trovo le stringhe uniche in una matrice.
Immissione di esempio: abc def abc ab deg immesso univoci: abc def ab deg deg dovrebbe essere trovato.
L'ordinamento iniziale dell'array consente di ottenere modi lunghi. Quindi basta scorrere le stringhe e se la stringa corrente differisce dalla stringa precedente, è unica e puoi memorizzarla altrove. – WhirlWind
il problema è che ho bisogno delle posizioni esatte. Sai come in questo: ingresso: abc def abe abc def deg entrato quelle uniche: abc def abe deg se ho risolto la matrice mi metterò quelle uniche come quella: abc def Abe deg Questo non è quello che ho voglio che abbia bisogno anche dei luoghi. – LuckySlevin
Quindi creare una matrice di puntatori o una matrice di indici di matrice nell'array iniziale che si ordina, invece di ordinare l'array iniziale. – WhirlWind