www.mikrocontroller.net

Forum: PC-Programmierung Teile eines Arrays mit Zahl vergleichen


Autor: Dennis M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bräuchte kurz hilfe. Habe ein array welches ich mit einer Zahl 
vergleichen möchte.
Also,

char array[20];   //0-13 enthält Werte
char zahl=333;

jetzt möchte ich gerne die arraywerte array[10]-array[13] mit der Zahl 
vergleichen. Weiss nur net genau wie.
Dachte ans
char array[20];   //0-13 enthätl werte
char vergleich, zahl=3433;

vergleich = atoi(&array[10]);
if(vergleich==zahl)
...


so etwas in die Richtung.

Gruß

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
char array[20];   //0-13 enthätl werte
char zahl=33;     // 3433 passt nicht in ein char

if(array[10]==zahl)
...

Autor: Dennis M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also, vllt. habe ich net richtig ausgedrückt,

die arrayfelder [10]-[13] stellen eine Zahl dar. Z.B. 2447 (d.h. jedes 
Feld enthält eine Zahl), und ich müsste diese dann mit einer 
virgegebenen Zahl vergleichen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis M schrieb:

> char array[20];   //0-13 enthält Werte

Welche Werte?

> vergleich = atoi(&array[10]);

Deine Verwendung von atoi lässt in mir den Verdacht aufkommen, dass es 
sich bei den "in dem Array gespeicherten Werten" in Wirklichkeit um 
einen String handelt. Kann das sein?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis M schrieb:
> also, vllt. habe ich net richtig ausgedrückt,

Das ist sehr wahrscheinlich.

Ich gehe davon aus, daß sich das auch noch nicht gebessert hat.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dennis M schrieb:
> die arrayfelder [10]-[13] stellen eine Zahl dar. Z.B. 2447 (d.h. jedes
> Feld enthält eine Zahl)

meinst du vielleicht "Ziffer" statt "Zahl"?
Was steht im Rest? Wo kommt es her? Wozu das Ganze? Was soll der 
Vergleich ergeben?

Mit irgendeinem Geschwurbel als Frage kann man wirklich nichts anfangen.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier zu fragen, macht vor allem Sinn, wenn man gewisse Grundkenntnisse 
der Programmierung hat, sich nennenswert selbst um eine Lösung bemüht 
und seine Fragen halbwegs verständlich formulieren kann.

Alles andere ist sinnlos und für alle Beteiligten Zeitverschwendung.

Autor: Dennis M (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also,

array[10]=2;
array[11]=4;
array[12]=3;
array[13]=8;


if(2438>300 && 2438<1000)      //2438 is der Inhalt von array[10]-array[13]
...


jetzt muss ich die 2438 mit meiner "zahl" vergleichen, ob die gleich 
groß sind, ob die eine Zahl größer oder kleiner ist.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ergibt:

   2 * 1000  +
   4 *  100  +
   3 *   10  +
   8 *    1


genau: 2438

In deinem Array hast du 4 Ziffern. Mit obigem kannst du erst mal aus den 
4 Ziffern eine 4-stellige Zahl bauen und die dann nach Herzenslust 
verwurschten.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Antowrt auf deine implizite Frage: ja, ein gutes C-Buch zu lesen
ist förderlich, wenn man in C programmieren will.
Falls es hier um C geht.

Autor: Antwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglichkeit
int Zahl=0;
char array[20]; //enthält Ziffern an Stelle 10-13
int i=0;
int Wert = 2247;

for(i=10;i<14;i++){
  Zahl = ((int)array[i]-48);
  Zahl = Zahl*10;
}

if(Zahl == Wert){
  //tue etwas
}

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> Alles andere ist sinnlos und für alle Beteiligten Zeitverschwendung.
Nein die Erfahrung zeigt, das es sich besonders lohn nebulöse 
unverständliche Fragen mit nichtssagendem Titel zu stellen und möglichst 
gar keine Ahnung vom Thema zu habe...

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.