Hallo, würde mich freuen wenn mir hier einer helfen könnte.: Ich habe folgendes Problem. Ich möchte mehrere Telefonnummern (Handynummern) in ein Array speichern. Programmiersprache ist C. Da diese Nummern ja sehr lang sind weiß ich nicht wie ich das anstellen soll. Komme einfach nicht zum Ziel: unter anderem habe ich es mit folgenden Zeilen probiert. char Number[30]; Nummer[0] = "+49...."; Für einen Tipp wäre ich dankbar! Gruß Thomas
dabei kommt folgendes raus wenn du es so machst: Nummer[0]=+ Nummer[1]=4 Nummer[2]=9 Nummer[3]=1 Nummer[4]=6 ...
benutz doch nen mehrdimensionales array: array[30][0] array[30][0]
So in etwa würde ich das machen: char* NummernTabelle[] = { "+494353453", "+494345", "+494345345345", }; #define ANZAHL_NUMMERN (sizeof(NummernTabelle)/sizeof(NummernTabelle[0])) ... printf("Nummer 2: %s\n", NummernTabelle[2]);
unsigned int anzahl=2; char** nummern = (char**)malloc(sizeof(char*)*anzahl); nummern[0]=calloc(sizeof(char),25); sprintf(nummern[0],"+49 123 4556"); so oder so ähnlich
haikar wrote: > ... > > printf("Nummer 2: %s\n", NummernTabelle[2]); printf("Nummer 3: %s\n", NummernTabelle[2]); Informatiker am Bahnhof: "0...1...2... WO IST MEIN DRITTER KOFFER???"
Nun... ist des nich ein ziemlich hartes Stück direkt mit Pointern und dem Heap aufzuwarten wenner ne Frage zu Arrays hat?! Wenn du deine Nummern zur Laufzeit eingeben willst würde ich dir, der Übersicht-wegen sogar ein Array aus Strukturvariablen empfehlen :) so kannst du dann Vorwahl(01XX) und eigentliche Nummer getrennt speichern und später, solltest du das vorhaben, einfacher nach Provider etc ordnen. Aber... erstmal das Grundgerüst. Ein Beispiel zur Variablen Deklaration und Zuweisen zur Laufzeit wäre z.B. folgendes:
1 | #define GEWUENSCHTE_ANZAHL 20
|
2 | /*in diesem Makro kannst du vorher die gewünschte Anzahl an verfügbaren
|
3 | Handynummer eingeben - ist für den Anfang wahrscheinlich leichter als
|
4 | dynamische Speicher zu verwenden, die 20 einfach nach belieben austauschen*/
|
5 | |
6 | |
7 | struct Handynummern { //Hier erstellst du eine Variable |
8 | int vorwahl; //mit zwei subvariablen vom Typ |
9 | int hauptnummer; //Integer - sollte für die Nummern |
10 | } die_nummer[GEWUENSCHTE_ANZAHL]; //ausreichen - wenn du, was das |
11 | //was das genutzte Forum indiziert,
|
12 | //einen mC benutzt, musst du stattdessen 32bit Integer benutzen. Die Zeile
|
13 | // ' die_nummer[GEWUENSCHTE_ANZAHL] ' stellt dir jetzt die Variable
|
14 | //"die_nummer" mit 20 möglichen Nummer zur Verfügung (du merkst, hier wird
|
15 | //mit arrays gearbeitet
|
16 | |
17 | |
18 | int main() { |
19 | int i; |
20 | for(i=0;i<GEWUENSCHTE_ANZAHL;i++) { |
21 | |
22 | //ich denke mit for-schleifen kannst du was anfangen, wenn nich einfach
|
23 | //fragen
|
24 | |
25 | printf("Telefonnummer %d so eingeben: 01XX/54XXXXXX\n",i+1); |
26 | scanf("%d/%d",&die_nummer[i].vorwahl,&die_nummer[i].hauptnummer); |
27 | |
28 | //"scanf" ist jetzt sozusagen das wichtigste. Du sagst dem Programm das es
|
29 | //die eingebene Nummer an der Stelle des "/" aufspalten und in die
|
30 | //Subvariablen von "die_nummer" speichern soll. " i " ist in dem Fall
|
31 | //halt die - vom Zähler der Schleife abhängige - Stelle von "die_nummer"
|
32 | |
33 | }
|
34 | //hier kannste dann mit den Nummer machen was du willst, z.B. ordnen
|
35 | }
|
vom Grundprinzip ist das zumindest der Quelltext für eine Ansi-C Konsolenanwendung. Ich nehme mal an dass du sowas auch programmieren wolltest, auch wenn das hier das Forum für mC uns Elektronik ist... Hoffe ich konnte helfen, bis dann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.