/* Nome: Mario Cognome: Montanari delEvenDigits & delOddDigits */ #include #include #include #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; } */