'abcd 汉字 efg'가 포함 된 문자열을 역순으로 변환하는 방법에 대한 문제가 있습니다.ASCII 문자와 비 ASCII 문자를 포함하는 문자열 반전
str_to_reverse = "abcd汉字efg"; /* those non-ASCII chars are Chinese characters, each of them takes 2 bytes */
복귀 후, 그것이 있어야 : 나는 단순히 모든 바이트를 반대하는 것은하지 것이라고 생각하기 때문에
str_toreverse = "gfe字汉dcba";
생각이 문자열을 반대로, 나는 그 비 ASCII 문자를 식별 해 정답.
어떻게하면됩니까?
추신 : 이 프로그램은 32 비트 우분투에서 작성했습니다.
for(i = 0; i < strlen(s); i++)
printf("%c", s[i]);
내가 대신 "汉字"일부 횡설수설 텍스트를 가지고 : 다음 나는 모든 바이트를 출력한다.
당신은 비 ASCII 문자를 식별 할 필요가 없습니다, 문자열 중 하나를 16 개 비트 문자 또는 8 개 비트 문자를 가지고, 당신은 혼합 수 있다고 생각과 일치하지 않습니다한다 . 해당 문자열의 일반 ASCII 문자는 실제로 16 비트 문자입니다. – Kratz
어떤 플랫폼입니까? VisualC (++)/gcc/ANSI C? – xanatos
@Kratz 여기에 놀라운 세계가 있습니다 ... MBCS와 UTF-8로 가득 찬 세계 : – xanatos