Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez les conseils suivants :
Les plages d’octets de fin chevauchent le jeu de caractères ASCII dans de nombreux cas. Vous pouvez utiliser en toute sécurité des analyses d’octets pour tous les caractères de contrôle (inférieurs à 32).
Considérez la ligne de code suivante, qui peut vérifier si le dernier caractère d’une chaîne est une barre oblique inverse :
if ( sz[ strlen( sz ) - 1 ] == '\\' ) // Is last character a '\'? // . . .Étant donné qu’il
strlenne prend pas en charge MBCS, il retourne le nombre d’octets, et non le nombre de caractères, dans une chaîne multioctet. Notez également que dans certaines pages de codes (932, par exemple), '\' (0x5c) est un octet de fin valide (szest une chaîne C).Une solution possible consiste à réécrire le code de cette façon :
char *pLast; pLast = _mbsrchr( sz, '\\' ); // find last occurrence of '\' in sz if ( pLast && ( *_mbsinc( pLast ) == '\0' ) ) // . . .Ce code utilise les fonctions
_mbsrchrMBCS et_mbsinc. Étant donné que ces fonctions sont conscientes de MBCS, elles peuvent faire la distinction entre un caractère « \ » et un octet de fin « \ ». Le code effectue une action si le dernier caractère de la chaîne est null ('\0').