wcscpy, wcscpy_s
From cppreference.net
|
Défini dans l'en-tête
<wchar.h>
|
||
| (1) | ||
|
wchar_t
*
wcscpy
(
wchar_t
*
dest,
const
wchar_t
*
src
)
;
|
(depuis C95)
(jusqu'à C99) |
|
|
wchar_t
*
wcscpy
(
wchar_t
*
restrict
dest,
const
wchar_t
*
restrict
src
)
;
|
(depuis C99) | |
|
errno_t wcscpy_s
(
wchar_t
*
restrict
dest, rsize_t destsz,
const wchar_t * restrict src ) ; |
(2) | (depuis C11) |
1)
Copie la chaîne large pointée par
src
(incluant le caractère large nul de terminaison) vers le tableau de caractères large pointé par
dest
. Le comportement est indéfini si le tableau
dest
n'est pas suffisamment grand. Le comportement est indéfini si les chaînes se chevauchent.
2)
Identique à
(1)
, sauf qu'il peut écraser le reste du tableau de destination avec des valeurs non spécifiées et que les erreurs suivantes sont détectées à l'exécution et appellent la fonction
gestionnaire de contraintes
actuellement installée :
-
- src ou dest est un pointeur nul
- destsz est zéro ou supérieur à RSIZE_MAX / sizeof ( wchar_t )
- destsz est inférieur ou égal à wcsnlen_s ( src, destsz ) , en d'autres termes, une troncation se produirait
- un chevauchement se produirait entre les chaînes source et destination
-
Comme pour toutes les fonctions à vérification des limites,
wcscpy_sn'est garantie d'être disponible que si __STDC_LIB_EXT1__ est défini par l'implémentation et si l'utilisateur définit __STDC_WANT_LIB_EXT1__ à la constante entière 1 avant d'inclure <wchar.h> .
Table des matières |
Paramètres
| dest | - | pointeur vers le tableau de caractères larges à copier |
| src | - | pointeur vers la chaîne large terminée par un caractère nul à copier |
| destsz | - | nombre maximum de caractères à écrire, généralement la taille du tampon de destination |
Valeur de retour
1)
renvoie une copie de
dest
2)
renvoie zéro en cas de succès, renvoie une valeur non nulle en cas d'erreur. De plus, en cas d'erreur, écrit
L
'
\0
'
dans
dest
[
0
]
(sauf si
dest
est un pointeur nul ou
destsz
est zéro ou supérieur à
RMAX_SIZE
/
sizeof
(
wchar_t
)
).
Exemple
Exécuter ce code
#include <locale.h> #include <stdio.h> #include <wchar.h> int main(void) { wchar_t* src = L"犬 means dog"; // src[0] = L'狗' ; // ceci serait un comportement indéfini wchar_t dst[wcslen(src) + 1]; // +1 pour le terminateur nul wcscpy(dst, src); dst[0] = L'狗'; // OK setlocale(LC_ALL, "en_US.utf8"); printf("src = %ls\ndst = %ls\n", src, dst); }
Sortie :
src = 犬 means dog dst = 狗 means dog
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 7.29.4.1.2 La fonction wcscpy (p: TBD)
-
- K.3.9.2.1.1 La fonction wcscpy_s (p: TBD)
- Norme C17 (ISO/CEI 9899:2018):
-
- 7.29.4.1.2 La fonction wcscpy (p: TBD)
-
- K.3.9.2.1.1 La fonction wcscpy_s (p: TBD)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.29.4.1.2 La fonction wcscpy (p: 430)
-
- K.3.9.2.1.1 La fonction wcscpy_s (p: 639)
- Norme C99 (ISO/IEC 9899:1999) :
-
- 7.24.4.1.2 La fonction wcscpy (p: 376)
Voir aussi
|
(C95)
(C11)
|
copie un certain nombre de caractères larges d'une chaîne à une autre
(fonction) |
|
(C95)
(C11)
|
copie un certain nombre de caractères larges entre deux tableaux non chevauchants
(fonction) |
|
(C11)
|
copie une chaîne vers une autre
(fonction) |
|
Documentation C++
pour
wcscpy
|
|