/*
Nome: Mario
Cognome: Montanari

delEvenDigits & delOddDigits
*/

#include <iostream>
#include <cctype>
#include <iomanip>

#define SIZE 100+1

using namespace std;

char *delEvenDigits(char *const src);
char *delOddDigits(char *const dst);

int main(void) {
	char src[SIZE] = "25dic2018";
	char dst[SIZE];
	
	strcpy(dst, src);
	
	cout << "Original string: " << setw(10) << src << endl;
	
	delEvenDigits(src);
	cout << "delEvenDigit: " << setw(9) << src << endl;
	
	delOddDigits(dst);
	cout << "delOddDigit: " << setw(12) << dst << endl;
	
	return 0;
}

// Con puntatori
char *delEvenDigits(char *const src) {
	char *w = src;
	for (char *r = src; *r != '\0'; r++) {
		if (!isdigit(*r) || (*r - '0') % 2 != 0) {
			*w++ = *r;
		}
	}
	*w = '\0';
	
	return src;
}

/* Senza puntatori
char *delEvenDigits(char *const src) {
	int w = 0;
	for (int r = 0; src[r] != '\0'; r++) {
		if (!isdigit(src[r]) || (src[r] - '0') % 2 != 0) {
			src[w++] = src[r];
		}
	}
	src[w] = '\0';
	
	return src;
}
*/

// Con puntatori
char *delOddDigits(char *const dst) {
	char *w = dst;
	for (char *r = dst; *r != '\0'; r++) {
		if (!isdigit(*r) || (*r - '0') % 2 == 0) {
			*w++ = *r;
		}
	}
	*w = '\0';
	
	return dst;
}

/* Senza puntatori
char *delOddDigits(char *const dst) {
	int w = 0;
	for (int r = 0; dst[r] != '\0'; r++) {
		if (!isdigit(dst[r]) || (dst[r] - '0') % 2 == 0) {
			// Copia
			dst[w++] = dst[r];
		}
	}
	dst[w] = '\0';
	
	return dst;
}
*/