Avatar billede quiw Nybegynder
29. december 2006 - 18:09 Der er 15 kommentarer og
1 løsning

Array ID ud fra givet indhold.

Hejsa igen, jeg har lavet et array som ser således ud:
#include <iostream>

using namespace std;

int main()
{
    int ID;
    char navn[20][3];
    sprintf(navn[1],"Hello");
    sprintf(navn[2],"Amin");
    sprintf(navn[3],"Amin");
   
    // Her kan jeg se hvad indholdet er ud fra ID.
    cout << navn[1]<<navn[2]<<navn[3];
   
    // Kan jeg se hvilket ID indholdet har?
    Find ID variablen har, hvor ordet "Amin" er.
    cout << "Ordet Amin har ID: "<<ID<<"\n";
    system("pause");
    return 0;
}

- Jeg vil gerne vide om der findes en funktion til at finde det ID det givne ord har .. Eller skal jeg et loop som tjekker hele arrayet igennem for ordet "Amin" og til sidst fortæller hvilket ID den kom til?.
Avatar billede windcape Praktikant
29. december 2006 - 18:11 #1
Avatar billede quiw Nybegynder
29. december 2006 - 18:19 #2
Ah .. Det er jo simpelt så :)
- For lige at få noget ud af pointene i spørgsmålet, så kunne du vel ikke svare mig på om man i winsock kan få IP ud fra socket?.. Og eventuelt få timeout hvis brugeren logger ud?..
Avatar billede windcape Praktikant
29. december 2006 - 18:21 #3
Det skal jeg ikke lige kunne sige :-) Men du behøver altså ikke give points bare for et link. Så behold dem til at oprette andre spørgsmål med.
Avatar billede arne_v Ekspert
29. december 2006 - 18:27 #4
hvis du har brug for hurtigt opslag navn->id så brug en STL map
Avatar billede arne_v Ekspert
29. december 2006 - 18:28 #5
iøvrigt ser

    char navn[20][3];
    sprintf(navn[1],"Hello");
    sprintf(navn[2],"Amin");
    sprintf(navn[3],"Amin");

lidt uldent ud !
Avatar billede quiw Nybegynder
29. december 2006 - 19:04 #6
STL map? Har du et link eller et kort eksempel?..
- Well, det var bare et eksempel :) Forresten Arne, har nogle point til dig http://www.eksperten.dk/spm/752405
Avatar billede arne_v Ekspert
29. december 2006 - 19:11 #7
#include <iostream>
#include <map>
#include <string>

using namespace std;

int main()
{
  map<string,int> m;
  m.insert(make_pair("A",1));
  m.insert(make_pair("BB",2));
  m.insert(make_pair("CCC",3));
  cout << m["BB"] << endl;
  return 0;
}
Avatar billede quiw Nybegynder
29. december 2006 - 21:58 #8
- Ah Tak Arne_V, men nu vi er i gang .. Ved du hvordan man får fat i IP ud fra socket?.. F.eks. hvilken ip har socket 132 .. Og findes der en timeout funktion hvis clienten lukker programmeT?
Avatar billede arne_v Ekspert
30. december 2006 - 03:05 #9
code snippet:

  len = sizeof(remote);
  status=getsockname(sd2,(struct sockaddr *)&remote,&len);
  if(status<0)
  {
      printf("Error getting socket address: %s\n",strerror(errno));
      goto fin;
  }
  printf("Connection from %d.%d.%d.%d\n",remote.sin_addr.s_net,remote.sin_addr.s_host,
                                        remote.sin_addr.s_lh,remote.sin_addr.s_impno);
Avatar billede quiw Nybegynder
30. december 2006 - 14:41 #10
Ser meget logisk ud, men får fejl ved getsockname, den siger "invalid conversion from int to socket", hvilket jeg ikke kan forstå hvorfor..
Avatar billede quiw Nybegynder
30. december 2006 - 17:04 #11
Ahh .. Mig der roder lidt rundt i det hele .. Havde glemt at sd2 var et array .. Men Tak :) Smid et svar ..
Avatar billede quiw Nybegynder
30. december 2006 - 20:24 #12
Må lige gøre opmærksom på, getsockname virker ikke hos mig, men det gør getpeername tilgengæld :)
Avatar billede quiw Nybegynder
02. januar 2007 - 15:11 #13
- Hurtigt spørgsmål, hvad nu hvis jeg så vil have teksten på ID 2?.. Det virker nemlig ikke hvis man skriver:
cout << m[2] << endl;
Avatar billede arne_v Ekspert
03. januar 2007 - 01:41 #14
en anden map
Avatar billede quiw Nybegynder
03. januar 2007 - 20:01 #15
Yeah det fandt jeg ud af :) - Svar? :)
Avatar billede arne_v Ekspert
03. januar 2007 - 20:09 #16
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester