Problema invalid conversion from 'char' to 'const char'

di il
6 risposte

Problema invalid conversion from 'char' to 'const char'

Salve....mi da il problema del titolo...il codice è:
#include <iostream>
#include <cstring>
using namespace std;

bool controllo(char *elenco,int dim,int i)
{
    for(int x=0;x != i;x++)
    {
        if(strlen(elenco[x])==strlen-1(elenco[x+1]))
        return true;
        return false;
    }
}

const int dim=50;

int main()
{

    char *ptr;
 char stringa[dim];

 char *elenco[dim]=new char;
 int i=0;
 cout<<"Inserire stringa:"<<endl;
 cin.getline( stringa, 50, '\n');

ptr=strtok (stringa, ","); // tokenizzazione

 while(ptr != NULL)
      {
           elenco[i]=ptr;
            i++;
      // cout<<ptr<<'\n';
       ptr=strtok(NULL, ",");
      }                       //fine tokenizzazione

if(controllo(&elenco,dim,i))
cout<<"ok";
else
cout<<"no";

return 0;
}
come lo risolvo???

6 Risposte

  • Re: Problema invalid conversion from 'char' to 'const char'

    L errore me lo da alla riga if(strlen(elenco[x])==strlen-1(elenco[x+1]))
  • Re: Problema invalid conversion from 'char' to 'const char'

    Ma questo

    strlen-1(elenco[x+1])

    cosa vuol dire?
  • Re: Problema invalid conversion from 'char' to 'const char'

    Ho corretto il codice e ora va(piu o meno)....
    
    bool controllo(char *elenco[],int dim,int i)
    {
        for(int x=0; x != i;x++)
        {
            if(strlen(elenco[x])==strlen(elenco[x+1]-1))
            return true;
            return false;
        }
    }
    
    
    
    praticamente devo vedere se data una stringa....la parola successiva alla prima è uguale alla prima meno la prima lettera: esempio sparare-parare-arare-rare-re-e....pertanto ho usato strlen pero mi sa che sbaglio l utilizzo
  • Re: Problema invalid conversion from 'char' to 'const char'

    Non stai sbagliando utilizzo della strlen, la condizione non ha senso!
    Anche il ciclo non funziona: messo cosi' il codice, non cicla
  • Re: Problema invalid conversion from 'char' to 'const char'

    migliorabile ha scritto:


    Non stai sbagliando utilizzo della strlen, la condizione non ha senso!
    Anche il ciclo non funziona: messo cosi' il codice, non cicla
    bhooooooo e perche non cicla dove sta l errore???
  • Re: Problema invalid conversion from 'char' to 'const char'

    strlen(elenco[x+1]-1)
    Cosa vuoi ottenere da questa chiamata a strlen()? Guarda che non gli stai passando la stringa elenco[x+1] ma una stringa che inizia un carattere prima (ragionevolmente l'ultimo byte della stringa elenco[x]).
    Comunque, ti suggerisco di dividere il problema in sottoproblemi:
    1- scrivi una funzione che date due stringhe ti restituisce 1 se la seconda è uguale alla prima senza il primo carattere;
    2- verifica bene la funzione che hai scritto dandole in pasto delle stringhe varie
    3- scrivi il ciclo che richiama tale funzione
    Per il primo punto devi essere molto semplice, es.:
    int MioConfronto(char *str1,char *str2)
    {
      int len1 = strlen(str1);
      int len2 = strlen(str2);
      if( len2 == (len1-1) )
      {
        // ... fai il confronto con strcmp() e se corrisponde ritorni 1
      }
      return 0;
    }
Devi accedere o registrarti per scrivere nel forum
6 risposte