Forum: Mikrocontroller und Digitale Elektronik String in Array reinschreiben


von Thomas (Gast)


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

von moehrlin (Gast)


Lesenswert?

dabei kommt folgendes raus wenn du es so machst:
Nummer[0]=+
Nummer[1]=4
Nummer[2]=9
Nummer[3]=1
Nummer[4]=6

...

von moehrlin (Gast)


Lesenswert?

benutz doch nen mehrdimensionales array:

array[30][0]
array[30][0]

von haikar (Gast)


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]);

von Thorsten Frank (Gast)


Lesenswert?

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

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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???"

von Gast (Gast)


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

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
Noch kein Account? Hier anmelden.