Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Die letzten n Zeichen eines Strings extrahieren

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
13.10.2005, 15:28 Uhr
Thomy



Hallo,

gibts eine Funktion, die die letzten n Zeichen eines Strings zurück gibt?

MfG Thomy
--
Wenn man irgendetwas nur oft genug auseinander nimmt und wieder zusammenbaut, so hat man schließlich zwei davon. Murphy's Gesetz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2005, 15:33 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


kannste z.B. mit strcpy in nen anderen String kopieren.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.10.2005, 15:36 Uhr
ao

(Operator)


Nicht im Standard.

Vielleicht findest du in deiner C-Lib etwas, das strrncpy heißt (nein, ich bin nicht irre geworden, das wäre in etwa das Kürzel für STRingReverseNCoPY).

Oder selber machen:

C++:
#include <string.h>
char * strrncpy (char * dest, const char * src, int n)
{
    return strcpy (dest, src + strlen (src) - n);
}

/* Ab hier Testprogramm */
#include <stdio.h>
int main (void)
{
    char buf[1024];
    printf ("%s", strrncpy (buf, "Hallo Welt", 4));
    return 0;
}


(ohne genauen Test hingekritzelt)

ao

Dieser Post wurde am 13.10.2005 um 15:40 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.10.2005, 15:36 Uhr
imhotep
followed the white rabbit


In C++ kann man mut std::string.substring(ini,int) einen Bereich angeben, denn man haben will.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.10.2005, 15:38 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
const char* last_n_chars(const char* str, size_t n) {
   size_t len = strlen(str);
   if (n>len) {
       return NULL;
   }
   else {
       return str+len-n;
   }
}



Gibt NULL zurück, wenn n größer der Länge des Strings zurück ist, sonst eben einen String ab der gewünschten Position.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.10.2005, 15:55 Uhr
~Thomy
Gast


Danke,
kurze Frage noch:

char *str;
str + 4 (z.B.)

Wass passiert da mit dem String?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
13.10.2005, 16:04 Uhr
Pablo
Supertux
(Operator)


wenn str auf ein richtiges String zeigt, dann werden die ersten 4 Zeichen sozusagen ignoriert (nicht ausgebene, usw). Wenn 4 > strlen(str) + 1 dann ist undefiniert, was passiert.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
13.10.2005, 16:11 Uhr
~Thomy
Gast


Thanx
zählt strlen(str) eigentlich das "\0" am von str mit?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
13.10.2005, 16:12 Uhr
Pablo
Supertux
(Operator)


nein.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.10.2005, 16:02 Uhr
bool



wie geht dem mit Integers???
 
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: