#include <stdio.h>
int position( char * zeichenkette, char zeichen) ; /* Prototyp der Suchfunktion */
int main( void )
{
enum { LAENGE = 100 } ;
int position_zeichen, start, c;
char zeichen, zeichenkette[ LAENGE] ;
puts ( "Das ist ein Programm zum Vergleich einer Zeichenkette mit einem Zeichen" ) ;
printf ( "Bitte Zeichenkette mit maximal %d Zeichen eingeben: " , LAENGE
- 1 ) ; // Einlesen einer beliebigen Zeichenkette mit Sonderzeichen
for ( start
= 0 ; ( start
< LAENGE
- 1 ) && ( ( c
= getchar ( ) ) != EOF
) && c
!= '\n ' ; start
++ ) {
zeichenkette[ start] = c;
}
zeichenkette[ start] = '\0 ' ; /* String-Ende markieren */
if ( start== LAENGE- 1 ) /* Wenn zu viele Zeichen sind, hier verarbeiten */
{
while ( getchar ( ) != '\n ' ) ; /* Zeichen solange einlesen bis Enter */ }
printf ( "Bitte ein Zeichen eingeben:" ) ;
scanf ( "%c" ,& zeichen
) ; /* Einlesen des gesuchten Zeichens */
position_zeichen = position( zeichenkette, zeichen) ;
if ( position_zeichen == - 1 ) /* ist das Zeichen nich vorhanden? */
puts ( "Eingegebenes Zeichen ist nicht in der Zeichenkette enthalten!" ) ; else
/* wenn ja, Ausgabe des Suchergebnisses */
printf ( "Position des letzten %c ist an Stelle: %d\n " , zeichen
, position_zeichen
+ 1 ) ;
return 0 ;
}
/* Funktion zum Suchen des Zeichens */
int position( char * zeichenkette, char zeichen)
{
int back = - 1 , i;
if ( zeichenkette!= NULL) /* Wenn keine Zeichen vorhanden sind, Rückgabe von 0 */
{
/* Schleife zum Durchgehen der Zeichenkette */
for ( i = 0 ; zeichenkette[ i] != '\0 ' ; i++ )
{
/* Kontrollausgabe der Zeichen mit der zugewiesenen Positionszahl */
printf ( "An Stelle %4d steht das Zeichen = %c\n " , i
+ 1 , zeichenkette
[ i
] ) ;
/* Vergleich der einzelnen Zeichen mit dem gesuchten */
if ( zeichenkette[ i] == zeichen)
{
back = i; /* Position des gesuchten Zeichens speichern */
}
}
}
return back; /* Rückgabe der Position des gesuchten Zeichens */
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgcG9zaXRpb24oY2hhciAqemVpY2hlbmtldHRlLCBjaGFyIHplaWNoZW4pOyAvKiBQcm90b3R5cCBkZXIgU3VjaGZ1bmt0aW9uICovCgppbnQgbWFpbih2b2lkKQp7CgllbnVtIHsgTEFFTkdFID0gMTAwIH07CiAgICBpbnQgcG9zaXRpb25femVpY2hlbixzdGFydCxjOwogICAgY2hhciB6ZWljaGVuLCB6ZWljaGVua2V0dGVbTEFFTkdFXTsKICAgIAogICAgcHV0cygiRGFzIGlzdCBlaW4gUHJvZ3JhbW0genVtIFZlcmdsZWljaCBlaW5lciBaZWljaGVua2V0dGUgbWl0IGVpbmVtIFplaWNoZW4iKTsKCiAgICBwcmludGYoIkJpdHRlIFplaWNoZW5rZXR0ZSBtaXQgbWF4aW1hbCAlZCBaZWljaGVuIGVpbmdlYmVuOiAiLExBRU5HRS0xKTsKICAgIC8vIEVpbmxlc2VuIGVpbmVyIGJlbGllYmlnZW4gWmVpY2hlbmtldHRlIG1pdCBTb25kZXJ6ZWljaGVuCiAgICBmb3Ioc3RhcnQ9MDsoc3RhcnQ8TEFFTkdFLTEpICYmICgoYz1nZXRjaGFyKCkpICE9IEVPRikgJiZjIT0nXG4nIDtzdGFydCsrKQogICAgewogICAgICAgIHplaWNoZW5rZXR0ZVtzdGFydF09YzsKICAgIH0KICAgIHplaWNoZW5rZXR0ZVtzdGFydF0gPSAnXDAnOyAvKiBTdHJpbmctRW5kZSBtYXJraWVyZW4gKi8KCQogICAgaWYoc3RhcnQ9PUxBRU5HRS0xKSAvKiBXZW5uIHp1IHZpZWxlIFplaWNoZW4gc2luZCwgaGllciB2ZXJhcmJlaXRlbiAqLwogICAgewogICAgICAgIHdoaWxlKGdldGNoYXIoKSE9J1xuJyk7IC8qIFplaWNoZW4gc29sYW5nZSBlaW5sZXNlbiBiaXMgRW50ZXIgKi8KICAgIH0KCQogICAgcHJpbnRmKCJCaXR0ZSBlaW4gWmVpY2hlbiBlaW5nZWJlbjoiKTsKCiAgICBzY2FuZigiJWMiLCZ6ZWljaGVuKTsgIC8qIEVpbmxlc2VuIGRlcyBnZXN1Y2h0ZW4gWmVpY2hlbnMgKi8JCgogICAgcG9zaXRpb25femVpY2hlbiA9IHBvc2l0aW9uKHplaWNoZW5rZXR0ZSx6ZWljaGVuKTsKCQogICAgaWYgKHBvc2l0aW9uX3plaWNoZW4gPT0gLTEpCS8qIGlzdCBkYXMgWmVpY2hlbiBuaWNoIHZvcmhhbmRlbj8gKi8KICAgICAgICBwdXRzKCJFaW5nZWdlYmVuZXMgWmVpY2hlbiBpc3QgbmljaHQgaW4gZGVyIFplaWNoZW5rZXR0ZSBlbnRoYWx0ZW4hIik7CiAgICBlbHNlCiAgICAgICAgLyogd2VubiBqYSwgQXVzZ2FiZSBkZXMgU3VjaGVyZ2Vibmlzc2VzICovCiAgICAgICAgcHJpbnRmKCJQb3NpdGlvbiBkZXMgbGV0enRlbiAlYyBpc3QgYW4gU3RlbGxlOiAlZFxuIiwgemVpY2hlbiwgcG9zaXRpb25femVpY2hlbisxKTsKCQogICAgcmV0dXJuIDA7Cn0KCi8qIEZ1bmt0aW9uIHp1bSBTdWNoZW4gZGVzIFplaWNoZW5zICovCmludCBwb3NpdGlvbihjaGFyICp6ZWljaGVua2V0dGUsIGNoYXIgemVpY2hlbikKewogICAgaW50IGJhY2sgPSAtMSwgaTsJCgkKICAgIGlmKHplaWNoZW5rZXR0ZSE9TlVMTCkgLyogV2VubiBrZWluZSBaZWljaGVuIHZvcmhhbmRlbiBzaW5kLCBSw7xja2dhYmUgdm9uIDAgKi8KICAgIHsJCiAgICAgICAgLyogU2NobGVpZmUgenVtIER1cmNoZ2VoZW4gZGVyIFplaWNoZW5rZXR0ZSAqLwogICAgICAgIGZvcihpID0gMDsgemVpY2hlbmtldHRlW2ldICE9ICdcMCc7IGkrKykgCiAgICAgICAgewogICAgICAgIAkvKiBLb250cm9sbGF1c2dhYmUgZGVyIFplaWNoZW4gbWl0IGRlciB6dWdld2llc2VuZW4gUG9zaXRpb25zemFobCAqLwogICAgICAgICAgICBwcmludGYoIkFuIFN0ZWxsZSAlNGQgc3RlaHQgZGFzIFplaWNoZW4gID0gJWNcbiIsaSsxLHplaWNoZW5rZXR0ZVtpXSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvKiBWZXJnbGVpY2ggZGVyIGVpbnplbG5lbiBaZWljaGVuIG1pdCBkZW0gZ2VzdWNodGVuICovCiAgICAgICAgICAgIGlmICh6ZWljaGVua2V0dGVbaV0gPT0gemVpY2hlbikgIAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBiYWNrID0gaTsgLyogUG9zaXRpb24gZGVzIGdlc3VjaHRlbiBaZWljaGVucyBzcGVpY2hlcm4gKi8KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBiYWNrOwkvKiBSw7xja2dhYmUgZGVyIFBvc2l0aW9uIGRlcyBnZXN1Y2h0ZW4gWmVpY2hlbnMgKi8KfQoK