Programación de revoluciones
#¿Contiene? ltstring.h gt
//?Puedes usar la función strrev() para invertir una cadena. Esto solo se puede traducir al inglés y habrá caracteres confusos en chino.
//? Si necesita invertir el chino, puede usar _mbsrev()(#include? ltmbstring.h gt (modo ANSI),? o usar wcsrev() (modo UNICODE),
Car? *?myStrrev(char?*?s)
{?l? =?s?strlen(s);}
regresar? ;
}
int?charAdd(const?unsigned?*?ch)
{
if(*ch? lt= ?0x80)? 1;? //Inglés
si(*ch? gt=?0x40)? /?Typos
//?Esto puede ser anti-chino /p>
char?*?myMbsrev(char?*?s)
{
.size_t?=?strlen(s);
¿Sin firmar? *?buf? len
¿Sin firmar? *?l?(¿Sin firmar?Char?*)s;
mientras(*l)
{
int? =?charAdd(l);
Si (ll?==? 0)?Break;
h? ll;
memcpy(h, l,?ll);
l?ll;
}
memcpy(s, h, ? len);
¿Eliminar s; p>
Char? str[1024];
Printf("¿Ingrese una cadena en inglés?:?");
gets(str);
Printf("¿Cuál es la cadena que ingresaste?:?s\n ",str);
Printf("¿Cuál es la cadena invertida? ?:?s\n ", myStrrev(str) );
Printf("¿Por favor ingrese una cadena china?:?");
gets(str);
p>
Printf(" ¿Cuál es la cadena que ingresaste? :?s\n ", str);
Printf("¿Cuál es la cadena invertida? :?s\n ", myMbsrev(str));
Return? 0;
}