Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » letzten stiring in string ("C")

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
26.04.2007, 12:49 Uhr
~jack26
Gast


Hi leute,

ich habe ein Problem, und zwar will ich in einem string mit einem suchstring das letzte auftreten des suchstrings im string suchen. Normalerweise wäre dafür ja strstr() geeignet, aber leider geht das nur für das erste Vorkommen und nicht für das letzte.

Wäre für jede Hilfe dankbar.

Grüße

jack26
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.04.2007, 13:13 Uhr
CppProgrammer




C++:
string str = "nixnix";
cout << str.find_last_of("x") << endl;
// Dann hast du die Position des letzten strings "x" in dem string str.


Dieser Post wurde am 26.04.2007 um 13:17 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.04.2007, 14:45 Uhr
~jack26
Gast


Danke für die schnelle Antwort, aber das ganze funktioniert nur in "c++" oder?!? Ich bräuchte das aber für "c".
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.04.2007, 15:14 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


strrstr ;-) ist aber nicht im ansi-standard enthalten, ggf gibts das nicht für dein System, bzw unter anderem namen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.04.2007, 15:28 Uhr
0xdeadbeef
Gott
(Operator)


Angelehnt an die etwas merkwürdige const-incorrectness von strstr, ich denke so sollte das gehen:

C++:
char *strrstr(char const *haystack, char const *needle) {
  size_t haystack_len = strlen(haystack),
         needle_len   = strlen(needle);
  char *p;

  for(p = haystack + haystack_len - needle_len; p >= haystack; --p) {
    if(memcmp(needle, p, needle_len) == 0)
      return p;
  }

  return NULL;
}


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

Dieser Post wurde am 26.04.2007 um 15:29 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.04.2007, 21:59 Uhr
mike
Pinguinhüpfer
(Operator)



C++:
#include <iostream>
#include <string>

int main()
{
  std::string myFoo("hallo karl heinz");

  std::string::size_type pos = myFoo.rfind("h");

  std::cout << pos << std::endl;

  return 0;
}



Oder hab ich das jetzt falsch verstanden?

Edit: Ok - C lösung gesucht - das wars
--

Dieser Post wurde am 26.04.2007 um 22:00 Uhr von mike editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.04.2007, 23:55 Uhr
~jack26
Gast


Vielen Dank für die Antworten, jedoch waren leider die meisten nur für C++...

Der größte Dank geht an 0xdeadbeef, mit dem Code sollte es klappen.

Grüße

Jack26
 
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: