c和指针的9:12题解,个人觉得比答案给的好

#define NUL '\0'

char ASIIC[30] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

int prepare_key(char * key) 
{
        int i = 0;
        char * copy = strdup(key);
        while(*copy != NUL)
        {   
                *copy = toupper( *key );
                if(ASIIC[*copy - 'A'] != 0)
                {   
                        ASIIC[*copy - 'A'] = 0;
                        *key++= *copy++;           
                }else
                        copy++;
                    
        }   
        while(i++ < 26) 
                if(ASIIC[i] != 0)
                        *key++ = ASIIC[i];
}

你可能感兴趣的:(ubuntu,c,linux)