String in Array reinschreiben

Gast #1061375
Lesenswert?

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
Gast #1061392
Lesenswert?

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]);
Gast #1062348
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren