AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[C++] Problem bei Stringverleich

Ein Thema von 3_of_8 · begonnen am 8. Feb 2006 · letzter Beitrag vom 8. Feb 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#11

Re: [C++] Problem bei Stringverleich

  Alt 8. Feb 2006, 20:36
Zitat von 3_of_8:
OK, hier mal mein ganzer Code
Code:
 char op[1];
Zitat von 3_of_8:
Ich hab einen char op;
Da liegt der unterschied.
Mit op[1] legst du ein charArray an, also ist der Typ, den op am ende hat, char*, sowas wie ein normaler String, bei dir eben mit fixer Laenge 1. Du hast also nen Zeiger, und willst einen Zeiger mit einer Konstante vergleichen:
Code:
char* z;
if (z == "mops")...
Wobei: "mops" ist ein String, am Ende also auch nur ein Zeiger. Normalerweise kann man Zeiger auf vergleichen, kein Problem, aber anscheinend ist es bei Konstanten eben ein bisschen anders. Damit duerfte die Loesung, die HERMES dir gegeben hat, naemlich strcmp, einwandfrei funktionieren.

Ich bin mir nicht sicher, aber was auch klappen duerfte waere folgendes:
Code:
char op;
cin >> op;
op wird damit zu einem char degradiert und der vergleich kann ohne strcmp stattfinden.

und nochwas....
Zitat von 3_of_8:
Code:
cin>>op;
//..
op=='+'||op=='-'||op=='*'||op=='/'
//...
if(op=="+") cout<<oprnd1<<"+"<<oprnd2<<"="<<oprnd1+oprnd2;
In C wird Code sehr schnell unübersichtlich, ich kann dir gern dafür ein Beispiel geben
jedenfalls würde ich dir den Einsatz von leerzeichen empfehlen

greetz
Mike

Box? *grml8
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#12

Re: [C++] Problem bei Stringverleich

  Alt 8. Feb 2006, 20:43
Zitat von JasonDX:
Ich bin mir nicht sicher, aber was auch klappen duerfte waere folgendes:
Code:
char op;
cin >> &op;
Autsch.
Warum "&" ? Warum refrenzieren?
"op" ist ein char, also ein int (!!) und somit mit dem istream-operator ">>" problemlos zu "füllen"

Edit: Ich seh grad im Original gibts kein "&" Hab aber echt auf Zitieren geklickt... Hmmmm. Dann betrachtet diesen Beitrag einfach als nicht geschrieben this = NULL (nochmal autsch...)
Gruß, Jan
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#13

Re: [C++] Problem bei Stringverleich

  Alt 8. Feb 2006, 20:46
Zitat von Der Jan:
Zitat von JasonDX:
Ich bin mir nicht sicher, aber was auch klappen duerfte waere folgendes:
Code:
char op;
cin >> &op;
Autsch.
Warum "&" ? Warum refrenzieren?
"op" ist ein char, also ein int (!!) und somit mit dem istream-operator ">>" problemlos zu "füllen"
Ich hab den ausrutscher vor 5 Minuten editiert


greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Benutzerbild von Der Jan
Der Jan

Registriert seit: 22. Dez 2005
289 Beiträge
 
Delphi XE7 Ultimate
 
#14

Re: [C++] Problem bei Stringverleich

  Alt 8. Feb 2006, 20:58
Hmmm. Alte Leute verarschen Nich ernst nehmen...

Zitat:
In C wird Code sehr schnell unübersichtlich
Es gibt nur zuwenig Durchblick
Code:
iBuf[i]=(char)(((c1-(c1<='9')?'0':('A'-10))<<4)+(c2-(c2<='0')?'9':('A'-10)));
Gruß, Jan
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#15

Re: [C++] Problem bei Stringverleich

  Alt 8. Feb 2006, 21:05
Zitat von Der Jan:
Hmmm. Alte Leute verarschen Nich ernst nehmen...
Hey, jeder braucht ein Hobby

Zitat von Der Jan:
Zitat:
In C wird Code sehr schnell unübersichtlich
Es gibt nur zuwenig Durchblick
Code:
iBuf[i]=(char)(((c1-(c1<='9')?'0':('A' - 10))<<4)+(c2-(c2<='0')?'9':('A'-10)));
Gut, bedingte Zuweisungen sind ja ein ganz besonders fieses Ding (die mein Tutor dieses Semester kennengelernt hat ), aber es stimmt schon, in C muss man sich bemühen, Code schön zu halten. Gerade deswegen ist Formatierung und Dokumentation besonders wichtig (Sprich: Leerzeichen, Zeilenumbrüche, und besonders Kommentare).

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz