Red de conocimiento informático - Problemas con los teléfonos móviles - Programación de revoluciones

Programación de revoluciones

#¿Incluir? ltstdio.h gt

#¿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;

}