#include <stdio.h> // printf
#include <ctype.h> // isdigit,isalpha
#include <string.h> // length
char const * const wejscie="e87lek45t9^!@#%$^&*()_+'8r09on32i5ka";
main(){
char* liczby=new char[strlen(wejscie)+1];
char* litery=new char[strlen(wejscie)+1];
char* othershit=new char[strlen(wejscie)+1];
liczby[0]=0;
litery[0]=0;
othershit[0]=0;
for(unsigned char i=0;wejscie[i];i++)
if(isdigit(wejscie[i])){
liczby[strlen(liczby)+1]=0;
liczby[strlen(liczby)]=wejscie[i];
}else
if(isalpha(wejscie[i])){
litery[strlen(litery)+1]=0;
litery[strlen(litery)]=wejscie[i];
}else{
othershit[strlen(othershit)+1]=0;
othershit[strlen(othershit)]=wejscie[i];
}
printf("cyfry : %s\n",liczby);
printf("litery : %s\n",litery);
printf("inne : %s\n",othershit);
delete liczby;
delete litery;
delete othershit;
}
Troszke podrasowałem, bo inaczej nie chciałoby mi sie pisać.
Algorytm jest strasznie toporny, zwłaszcza jeśli chodzi o przydział pamięci, ale za to niezawodny. Te zera, to przesunięcie końca ciągu.