*++p;



  • hallo

    Wie kann man den abfragen lassen, welche zeichenkette sich ab dem zeiger vorhanden ist.. also..

    zuerst ist der zeiger hier:

    | ➡ N|a|m|e|1|N|a|m|e|2| (wurde in 'char nam[20];' eingegeben)

    .. den namen vergleiche ich dann mit ner liste ..usw.. und der zeiger ist dann an der stelle:

    |N|a|m|e|1| ➡ N|a|m|e|2| (...sorry..wenn ich den zeiger so mach.. aber ging net anders bei dem forum)

    ..das problem ist... so wie ich das im moment geschrieben hab, vergleicht der von anfang an der zeichenkette mit der liste...
    ..aber er soll nur das was hinter dem zeiger steht vergleichen..

    while(*p!='\0')
    {	
    	if(isalpha(*p))
    	{
    		if(isupper(*p))
    		{
    			for(int i=0;i<=30;++i)
    			{
    				if(strcmp(a[i].name,nam)==0)				         {
                                                cout<<name<<"vorhanden";
    	                                   *++p;
    				}
    			}
    
    		}
    		else
    		{
    			*++p;
    		}
    
    	}
    	else
    	{
    
    		*++p;
    	//....	
    	}
    }
    

    😕

    kann mir da jemand weiter helfen?



  • Könntest du die Frage neu formulieren. Mir ist schleierhaft was du machen willst!



  • ok..ich versuchs nochmal ... also ..

    ich frage doch ab ... ob das eingegebene wort gleich dem ..irgendeinem in der liste ist... und wenn ich aber mehrere wörter hinternander schreibe.. soll er zuerst das erste wort abfragen..danach das 2 ...usw..

    naja ..ich wollts mit zeigern versuchen..

    der zeiger p steht dann zwar beim ersten buchstaben von dem 2.wort... aber wie kann man dem das klar machen..das ab da..das nächste wort beginnt..nachdem er suchen soll? 😕



  • Moment, du hast einen String, indem mehrere Worte direkt hintereinander Stehen. Und aus dieser Liste willst du jetzt bestimmte Worte suchen? Habe ich das richtig verstanden?



  • lol... ja^^

    mhm... naja die wörter unterscheiden sich nur dadurch..das das nächste wort immer groß anfängt...



  • naja die wörter unterscheiden sich nur dadurch..das das nächste wort immer groß anfängt...

    Aha, damit kann man ja mals was anfangen. Du willst also diese Liste in einzelne Wörter Aufteilen.

    string liste ="WortNocheins...";
    vector<string::iterator> anfaenge;
    
    for (string::iterator it=liste.begin(); it!=liste.end(); ++it) {
       if (isupper(*it))
          anfaenge.push_back (it);
    }
    

    So hast du alle Anfangspositionen der Wörter.



  • if (isupper(*it))

    if (isupper(static_cast<unsigned char>(*it)))
    


  • 🙄


Anmelden zum Antworten