Aide pour fonction lenght
valntin7650
-
valentin7650 -
valentin7650 -
Bonjour,
Je dois transformer un programme fait en C# en C++ et je suis bloqué a cette endroit:
byte[] text1 = new byte[32] { 0x20, 0x42, 0x6F, 0x6E, 0x6A, 0x6F, 0x75, 0x72, 0x20, 0x61, 0x70, 0x70, 0x75, 0x79, 0x65, 0x72, 0x20, 0x73, 0x75, 0x72, 0x20, 0x75, 0x6E, 0x65, 0x20, 0x74, 0x6F, 0x75, 0x63, 0x68, 0x65, 0x20 };
for (int i = 0; i < text1.Length; i++)
{
outBuffer[departoutbuffer] = text1[i];
departoutbuffer++;
}
C'est ce qui a été fait en C# et je bloque pour le text1.lenght() j'ai essayé ça:
char text1[32]{ 0x20, 0x42, 0x6F, 0x6E, 0x6A, 0x6F, 0x75, 0x72, 0x20, 0x61, 0x70, 0x70, 0x75, 0x79, 0x65, 0x72, 0x20, 0x73, 0x75, 0x72, 0x20, 0x75, 0x6E, 0x65, 0x20, 0x74, 0x6F, 0x75, 0x63, 0x68, 0x65, 0x20 };
for (int i = 0; i < text1.length(); i++)
{
outBuffer[departoutbuffer] = text1[i];
departoutbuffer++;
}
et j'ai comme erreur " error: request for member 'length' in 'text1', which is of non-class type 'char [32]'"
J'ai regardé sur google ça viendrais d'un problème comme quoi char serait pas compris dans la fonction lenght je crois mais je dois mettre quoi à la place?
Merci d'avance.
Je dois transformer un programme fait en C# en C++ et je suis bloqué a cette endroit:
byte[] text1 = new byte[32] { 0x20, 0x42, 0x6F, 0x6E, 0x6A, 0x6F, 0x75, 0x72, 0x20, 0x61, 0x70, 0x70, 0x75, 0x79, 0x65, 0x72, 0x20, 0x73, 0x75, 0x72, 0x20, 0x75, 0x6E, 0x65, 0x20, 0x74, 0x6F, 0x75, 0x63, 0x68, 0x65, 0x20 };
for (int i = 0; i < text1.Length; i++)
{
outBuffer[departoutbuffer] = text1[i];
departoutbuffer++;
}
C'est ce qui a été fait en C# et je bloque pour le text1.lenght() j'ai essayé ça:
char text1[32]{ 0x20, 0x42, 0x6F, 0x6E, 0x6A, 0x6F, 0x75, 0x72, 0x20, 0x61, 0x70, 0x70, 0x75, 0x79, 0x65, 0x72, 0x20, 0x73, 0x75, 0x72, 0x20, 0x75, 0x6E, 0x65, 0x20, 0x74, 0x6F, 0x75, 0x63, 0x68, 0x65, 0x20 };
for (int i = 0; i < text1.length(); i++)
{
outBuffer[departoutbuffer] = text1[i];
departoutbuffer++;
}
et j'ai comme erreur " error: request for member 'length' in 'text1', which is of non-class type 'char [32]'"
J'ai regardé sur google ça viendrais d'un problème comme quoi char serait pas compris dans la fonction lenght je crois mais je dois mettre quoi à la place?
Merci d'avance.
A voir également:
- Aide pour fonction lenght
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
4 réponses
J'ai lu sur StackOverflow que la ligne suivante devrait te donner le nombre d'éléments d'un tableau:
En gros, tu divises le nombre de bytes alloués au tableau par le nombre de bytes alloués pour le premier élément du tableau.
Par exemple, dans ton cas tu as un tableau de "char".
sizeof(text1) : 32 bytes, 1 byte par élément "char" de ton tableau.
sizeof(*text1) : 1 byte, le nombre de bytes alloués au premier élément de ton tableau (autrement dit, le nombre de bytes alloués à un élément de type "char").
Si tu divises 32 par 1, tu as 32 éléments dans ton tableau.
Bonne chance!
sizeof(text1)/sizeof(*text1)
En gros, tu divises le nombre de bytes alloués au tableau par le nombre de bytes alloués pour le premier élément du tableau.
Par exemple, dans ton cas tu as un tableau de "char".
sizeof(text1) : 32 bytes, 1 byte par élément "char" de ton tableau.
sizeof(*text1) : 1 byte, le nombre de bytes alloués au premier élément de ton tableau (autrement dit, le nombre de bytes alloués à un élément de type "char").
Si tu divises 32 par 1, tu as 32 éléments dans ton tableau.
Bonne chance!
Merci Doctor C de m'avoir répondu mais je t'avoue ne pas avoir tout compris dans ton explication, je dois mettre "sizeof(text1)/sizeof(*text1)" dans la boucle for juste avant le outBuffer[departoutbuffer] = text1[i]; ?? et dans mon cas je dois mettre quoi pour le size? je dois mettre ça : sizeof(32)/sizeof(1) ??
Par souci de lisibilité, tu pourrais faire quelque chose comme ça. Je peux pas le tester mais je suppose que ça marche:
// Obtenir la longueur du tableau
int longueur = sizeof(text1)/sizeof(*text1);
for (int i = 0; i < longueur; i++)
{
outBuffer[departoutbuffer] = text1[i];
departoutbuffer++;
}
Bonne chance!
Echo "Lima Mike Alfa";
// Obtenir la longueur du tableau
int longueur = sizeof(text1)/sizeof(*text1);
for (int i = 0; i < longueur; i++)
{
outBuffer[departoutbuffer] = text1[i];
departoutbuffer++;
}
Bonne chance!
Echo "Lima Mike Alfa";