#include <iostream> #include <cassert> using namespace std; bool g_flag[26]; void stringFilter( const char *pInputStr, long lInputLen, char *pOutputStr ) { assert( pInputStr != NULL ); int i = 0; if ( pInputStr == NULL || lInputLen <= 1 ) { return; } const char *p = pInputStr; while ( *p != '\0' ) { if ( g_flag[(*p - 'a')] ) { p++; }else{ pOutputStr[i++] = *p; g_flag[*p - 'a'] = 1; p++; } } pOutputStr[i] = '\0'; } int main() { memset( g_flag, 0, sizeof(g_flag) ); char input[] = "abacacde"; char *output = new char[strlen( input ) + 1]; stringFilter( input, strlen( input ), output ); cout << output << endl; delete output; return(0); }