più che tardi non è l'unico, l'incremento di i deve essere spostato interno al if ed la stringa nod deve essere opportunamente terminata con '\0'.

Aggiungo anche che il ciclo, nello spirito C deve essere scritto
codice:
	while ( str[j] ) {

		if ( isdigit(str[j]) ) {

			somma += str[j] - '0';
			nod[i] = str[j];
			i++;
		}

		j++;

	}
altrimenti usa la classe string del c++.
ciao
sergio