Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 29
  1. #1

    [C] funzione che restituisce numero caratteri parola + lunga

    Ciao ragazzi. L'esercizio in cui ho bisogno di aiuto è il seguente:
    Scrivere il codice di una funzione C che restituisca il numero di caratteri della parola più lunga contenuta in una stringa passata come argomento. considerare come caratteri solo quelli alfanumerici.
    io ho scritto:

    codice:
    int countchar( char *str){ 
    int i, c=0, p=0; 
    for (i=0; i=!'/0'; i++) { 
    if ((str[i] ≥ ‘A’ && str[i] ≤ ‘Z’) ||((str[i] ≥ ‘a’ && str[i] ≤ ‘z’) ||((str[i] ≥ ‘0’ && str[i] ≤ ‘9’)) 
    c++; 
    else { 
    p = max (c,p); 
    c=0; 
    } 
    return p; } }
    provando a compilare mi da errore.
    potreste dirmi dove è sbagliata?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Abituati a fornire le indicazioni corrette nel forum.

    Se dici che compilando hai degli errori, devi indicare quali sono e in quali linee.

    Inoltre, devi postare il codice tra tag CODE per renderlo leggibile.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Originariamente inviato da oregon
    Abituati a fornire le indicazioni corrette nel forum.

    Se dici che compilando hai degli errori, devi indicare quali sono e in quali linee.

    Inoltre, devi postare il codice tra tag CODE per renderlo leggibile.
    codice modificato. in realtà non ricordo gli errori che mi dava e al momento non essendo a casa non posso dirvelo.
    secondo voi a primo impatto è corretta o no?
    devo allocare per caso p?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    p è un numero intero ... che vuoi allocare?

    Ovviamente il simbolo ≥ non è compilabile in C ... deve essere >= (e similmente per il <=).

    Correggi e ricompila e poi ne parliamo
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Originariamente inviato da oregon
    p è un numero intero ... che vuoi allocare?

    Ovviamente il simbolo ≥ non è compilabile in C ... deve essere >= (e similmente per il <=).

    Correggi e ricompila e poi ne parliamo
    ho trovato un compilatore online e ho incollato il codice.guardalo e fammi sapere
    http://codepad.org/CsiYDnhk

    in realtà dovrei metterlo dentro il main vero?sono alle prime armi potresti dirmi come fare?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Come puoi vedere da solo (leggi i warning ...) gli apici in

    ‘A’

    sono sbagliati e dovrebbero essere

    'A'

    (così negli altri caratteri)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Originariamente inviato da oregon
    Come puoi vedere da solo (leggi i warning ...) gli apici in

    ‘A’

    sono sbagliati e dovrebbero essere

    'A'

    (così negli altri caratteri)
    ecco li ho cambiato.guarda il nuovo codice
    http://codepad.org/bfSjAtaW

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Dai ... leggi la frase d'errore ... sono cose elementari ...

    Se stai studiando C, in qualsiasi caso, mi spieghi cosa impari se ti fai correggere queste cose elementari in un forum?

    Controlla le parentesi ( nella if ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Ci sono diversi errori basilari (come il controllo nel for), le parentesi, ...

    Ti riporto il codice corretto e formattato in modo "umano".
    La formattazione del codice e' importante, ti aiuta tantissimo a trovare gli errori.
    Ciao.


    codice:
    #include <stdio.h>
    #include <string.h>
    
    int countchar(char *str)
    {
        int i, c = 0, p = 0;
    
        for (i = 0; i < strlen(str); i++) {
            if ((str[i] >= 'A' && str[i] <= 'Z') ||
                (str[i] >= 'a' && str[i] <= 'z') ||
                (str[i] >= '0' && str[i] <= '9'))
                c++;
            else {
                p = c > p ? c : p;
                c = 0;
            }
        }
    
        return p;
    }
    
    int main() 
    {
        char *frase = "La donzelletta vien dalla campagna in sul calar del sole, col suo fascio dell'erba"; 
    
        printf("%s: %d\n", frase, countchar(frase));
    
        return 0;
    }

  10. #10
    capito.grazie mille ragazzi.
    un ultima cosa.
    come mai metto:
    for (i = 0; i < strlen(str); i++) {

    e non
    for (i=0; i=!'/0'; i++) {

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.