Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] incremento variabile in funzione

    Ciao a tutti, questo è il mio primo post su questo forum

    Sto realizzando un programma C che utilizzi una funzione per invertire una stringa inserita da tastiera e ne restituisca dimensione e numero di caratteri maiuscoli. Funziona tutto, eccetto il numero di maiuscole.
    La mia funzione prende come parametri la stringa e il puntatore alla variabile num_M (numero di maiuscole), mentre ritorna la dimensione della stringa.
    A quanto pare l'incremento di *num_M non funziona, infatti num_M vale 0 alla fine del main. Qualche idea? :master:

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <ctype.h>
    
    #define MAX 64
    
    int strinv (char s[], int *num_M);
    
    int main()
    {
        char str[MAX];
        int dim, num_M;
    
        printf("str: ");
        scanf("%s", str);
    
        dim = strinv(str, &num_M);
    
        printf("\ndim = %d\nnum maiusc = %d\nstrinv: %s\n", dim, num_M, &str);
    
        return 0;
    }
    
    int strinv (char s[], int *num_M)
    {
        int i, dim = 0;
    
        *num_M = 0;
    
        for (i=0; s[i]!='\0'; i++)           // qui è il problema
            if (isupper(s[i]))
                *num_M++;
    
        dim = i;
    
        int tmp;
    
        for (i=0; i<dim/2; i++)
        {
            tmp = s[i];
            s[i] = s[dim-i-1];
            s[dim-i-1] = tmp;
        }
    
        return dim;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    (*num_M)++;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    dannazione u.u

    thanks!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.