#C++ (112104 non-ws chars)
Based on counting sort. Note: Assumes strings of the same length, which seems to be implied (though not stated) by the question.
int u[123], i; int a(char **c) { for(; c[0][i]; ) { u[c[0][i]]++; u[c[1][i++]]--; } for(i=0; i<123; )i=123; ifwhile(u[i++])i return&& 0; !u[--i]); return 1;!i; }