I got a problem about how to reverse a string containing this 'abcd汉字efg'.

```
str_to_reverse = "abcd汉字efg"; /* those non-ASCII chars are Chinese characters, each of them takes 2 bytes */

```

after reversion, it should be:

```
str_toreverse = "gfe字汉dcba";

```

I thought, to reverse the string, I gotta identify those non-ASCII chars, because I think that simply reversing every byte won't get the right answer.

How can I do it?

PS:
I wrote this program under Ubuntu, 32-bit.
then I printed every byte:

```
for(i = 0; i < strlen(s); i++)
    printf("%c", s[i]);

```

I got some gibberish text instead of "汉字".