[C] stringa palindroma

di il
18 risposte

[C] stringa palindroma

//STAMPARE STRINGA AL CONTRARIO!!
#include<stdio.h>
#include<string.h>

int main(){
    char s[30];
    char c[30];
    int i;
   
    
    printf("inserisci stringa ");
    
    fgets(s,30,stdin);
    strtok(s,"\n");
    printf("la stringa al contrario e':");
    for(i=strlen(s)-1;i>=0;i--){
      printf("%c",s[i]);
      
      }
 
      
      
       
     
        
    }
    
     
ciao ragazzi ho creato questo programma che mi stampa la stringa al contrario.io vorrei integrare nel programma se la stringa è un palindromo o meno! avevo provato a farlo con strcpy e copiare la stringa inversa in un altra stringa in modo da fare un confronto ma non mi riesce..qualcuno puo' aiutarmi?

18 Risposte

  • Re: [C] stringa palindroma

    Ciao ho editato il titolo, avevi scritto solo "[C]" ....
  • Re: [C] stringa palindroma

    Perché non mostri il codice di quello che vorresti fare?
  • Re: [C] stringa palindroma

    //STAMPARE STRINGA AL CONTRARIO!!
    #include<stdio.h>
    #include<string.h>
    
    int main(){
        char s[30];
        char c[30];
        int i;
       
        
        printf("inserisci stringa ");
        
        fgets(s,30,stdin);
        strtok(s,"\n");
        printf("la stringa al contrario e':");
        for(i=strlen(s)-1;i>=0;i--){
          printf("%c",s[i]);
          
          }
     
          if(strcmp(  , s)==0){
              printf("e' un palindromo");
              
              
          }else{
               printf("non e' un palindromo");
              
              
              
          }
          
    vorrei fare questo!
  • Re: [C] stringa palindroma

    Ovviamente dovrai confrontare con la strcmp c ed s

    Prima della strcmp, copi la s in c e la inverti con la strrev

    strcpy(c, s);
    strrev(c);

    A questo punto la for non serviva .. bastava fare la printf della stringa c dopo la strrev
  • Re: [C] stringa palindroma

    Sapevo della funzione Strrev solo che essendo in ambiente Linux non va ! Per questo ho creato quel ciclo for per invertire la prima stringa !
  • Re: [C] stringa palindroma

    Basta dirlo prima che usi Linux, no ? Così si evitano perdite di tempo in post e post ...

    Comunque, puoi risolvere tutto nella for ... ma con un minimo di impegno ci arrivavi da solo ...
    Non so perché studi il C ma risolvere da solo questi problemini è fondamentale
    
    int nc = strlen(s)-1, j=0;
    for(i=nc;i>=0;i--)
    {
       printf("%c",s[i]);
       c[j++]=s[i];
    }
    c[j]='\0';
    
    oppure
    
    int nc = strlen(s)-1, j=0;
    for(i=nc;i>=0;i--)
       c[j++]=s[i];
    c[j]='\0';
    printf("%s", c);
    
  • Re: [C] stringa palindroma

    Grazie sempre gentile !
  • Re: [C] stringa palindroma

    Prego, ma studi all'università? È una materia?
  • Re: [C] stringa palindroma

    Sisi
  • Re: [C] stringa palindroma

    E non segui un testo dove studiare come sono fatte le stringhe del C. Ti bastava questo per risolvere...
  • Re: [C] stringa palindroma

    Diciamo che ho imparato navigando su internet!
  • Re: [C] stringa palindroma

    Mah ... non si impara su internet per l'università! Si seguono le lezioni, i testi suggeriti e gli incontri con i professori !
  • Re: [C] stringa palindroma

    Ma dovresti spiegare prima a Peppus come funziona il codice ricorsivo, altrimenti è inutile ...
  • Re: [C] stringa palindroma

    Una mia perplessità: ma per risolvere un problema cosi banale non è inefficiente l'uso della ricorsione ??
Devi accedere o registrarti per scrivere nel forum
18 risposte