Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Implementieren von strlen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.05.2004, 14:50 Uhr
~chrisuni
Gast


Also... ich weiß zwar nicht ob das so überhaupt funktioniert, aber dazu noch ne Frage:

C++:
#include <iostream>

using namespace std;

unsigned int lge(const char *string);

int main()
{
char wort[10];
cout <<"\nBitte geben Sie ein Wort ein: ";
cin >> wort;
cout <<"\nSie haben das Wort: " << wort << " eingegeben.";
lge (wort);
return 0;
}

unsigned int lge(const char *string)
{
unsigned int lang;

while (*string != '\0') //Solange bis das Ende des Wortes erreicht ist
{
*string += 1; // wie kriege ich es hin das er eine stelle im Wort weitergeht
lang +=1;}    // für die Überprüfung while (*string != '\0')
cout << "\nWortLaenge beträgt: " << lang;
return lang;
}




oder haut das so gar nicht hin?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.05.2004, 14:51 Uhr
0xdeadbeef
Gott
(Operator)


Mach

C++:
string += 1;


draus. Du willst nicht den Inhalt, sondern den Pointer selbst verändern. Ne kürzere Schreibweise dafür ist übrigens:

C++:
++string;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.05.2004, 14:54 Uhr
~chrisuni
Gast


hab ich aber der compiler gibt den fehler permission denied an...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.05.2004, 15:06 Uhr
~chrisuni
Gast


btw hab den fehler.. aber das Funktioniert trotzdem nicht als Ausgabe erhalte ich:

Die wortlänge beträgt: 4391008


funktioniert das überhaupt so in etwa, oder ist mein Ansatz komplett falsch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.05.2004, 15:19 Uhr
ao

(Operator)


Du hast vergessen, lang zu initialisieren. Schreibe

C++:
unsigned int lang = 0;

dann gehts.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.05.2004, 15:25 Uhr
~chrisuni
Gast


Juchhhhhhhhhhhhhuuuuuu ))

Vielen Dank... hätte vor 3 Std. niemals gedacht sowas mit ein wenig Hilfestellung hinzubekommen !!!!! Das baut mich gerade etwas auf...


Dann noch einen Tip bitte... ohne Eure Tips hätt ich das jetzt nicht geschafft, hab zwar viele Bücher, aber selbst die Beantworten mir ja manche fragen nicht.... wie schaffe ich das denn jetzt solche Sachen in sagen wir mal 20 Tagen auch alleine lösen zu können ? Muss unbedingt am 11.6. zur nachschreibeklausur sowas alleine hinbekommen. Hat da jemand noch nen guten Tip für mich oder mal nen paar gute Erfahrungstips wie Ihr das so gschafft habt .
Ich weiß ist ne doofe Frage aber vllt kann ich von Euch noch was gutes Aufschnappen


Und Vielen vielen Dank nochmal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.05.2004, 16:08 Uhr
0xdeadbeef
Gott
(Operator)


Hm. Also, ein ziemlich gutes Buch für Anfänger ist "C++ für Dummies", aber wenn du das in 20 Tagen durch haben willst, musst du dich ziemlich dranhalten. Ansonsten lernt mans aber am Besten durch Erfahrung - zu Anfang schreibt jeder dreckigen Code.

Ach übrigens...ich wär die Sache wahrscheinlich noch ein bisschen anders angegangen - kuck mal, ob du den Code verstehst, und ob du verstehst, warum er schneller ist:

C++:
size_t strlen(const char *s) {
  const char *p = s;
  while(*p) ++p;
  return (size_t) (p - s);
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 07.05.2004 um 16:13 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.05.2004, 17:42 Uhr
ao

(Operator)



Zitat:
~chrisuni postete
Hat da jemand noch nen guten Tip für mich

Klausursammlung besorgen und die alten Aufgaben lösen. Wenns nur drum geht, die Prüfung zu schaffen, ist das m.E. besser als Bücher von vorn bis hinten durcharbeiten.

Zu Anfang, wenn du noch wenig weißt, konzentrier dich auf die Programmieraufgaben, denn da hast du sofort eine Erfolgskontrolle. Verwende konsequent einen Debugger, damit du siehst, wie sich dein Programm zur Laufzeit verhält.

Wenn du etwas Erfahrung im praktischen Programmieren gesammelt hast, wirst du sehen, dass dir auch die Verständnisfragen leichter fallen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.05.2004, 22:54 Uhr
~chrisuni
Gast


Danke... genau das hatte ich vor. Werde erstmal Klausureinsicht nehmen.
Ich darf alle Unterlagen benutzen in der Klausur. Das einzige was ich mir unbedingt noch reinziehen muss ist das Überladen von Operatoren und Funktionen etc (Klassen).. nur in allen Büchern die ich bisher hatte verstehe ich das irgendwie nicht. Naja ich hab noch bis zum 11.6. Zeit.
Danke nochmal
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: