Fonction strlen

cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008 - 18 mai 2003 à 20:06
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 mai 2003 à 19:55
Voici mon probleme :

je voudrai dans un tableau a deux dimetion savoir combien il reste de place dans les colone donc j'ai pensé a la fonction strlen comme pour un tableau a 1 dimention mai la sa ne marche pas que faire ?

Voici un code exemple : juste le main

int main()
{
char t[10][10];
int a;
strcpy(t[0],"toto");
cout << t[0] << endl;
a = strlen(t); // Erreur ici il di sa --> "cannot convert `char (*)[10]' to `const char*' for argument `1' to " et je voudrai ke sa me dise combien il reste de colone ici 9 ou combien sont utiliser ici 1
cout << a << endl;
system("PAUSE");
return 0;
}

merci de répondre ;-)
@+
----------------------------------------------
Programmeur entre débutant et amateur

3 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
18 mai 2003 à 20:14
rien ne pourra te dire ce qui est utilise ou non, c'est a toi de le gerer dans le code. Si tu ne veux pas maintenir un indicateur count, initialise tous les 1er octets de chacun a 0. Tu pourras ainsi verifier ulterieurement si place est occupee, technique parmi d'autres.
BruNews, ciao...
0
cs_ToToL Messages postés 170 Date d'inscription vendredi 25 avril 2003 Statut Membre Dernière intervention 9 juillet 2008
19 mai 2003 à 19:24
Merci mais sa ne marche pas car je narrive pa a dir a un if ke kan ( par exemple ) nom[0]==NULL d'executer le prog et que je mette NULL , 0 sa ne marche pas que faire?
merci
------------------------------------------------
Programmeur entre débutant et amateur
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 mai 2003 à 19:55
tu parlais d'un tab 2 dimensions.
nom[10][10];
init tout a zero: memset(&nom, 0, 100);
ou 1er octet de chaque:for(int i 0; i < 10; i++) nom[i][0] 0;
pourquoi tu ne pourrais pas tester
if(nom[i][0] == 0) je fais cela;
BruNews, ciao...
0
Rejoignez-nous