fork(3) download
  1. #include <stdio.h>
  2.  
  3. int position(char *zeichenkette, char zeichen); /* Prototyp der Suchfunktion */
  4.  
  5. int main(void)
  6. {
  7. enum { LAENGE = 100 };
  8. int position_zeichen,start,c;
  9. char zeichen, zeichenkette[LAENGE];
  10.  
  11. puts("Das ist ein Programm zum Vergleich einer Zeichenkette mit einem Zeichen");
  12.  
  13. printf("Bitte Zeichenkette mit maximal %d Zeichen eingeben: ",LAENGE-1);
  14. // Einlesen einer beliebigen Zeichenkette mit Sonderzeichen
  15. for(start=0;(start<LAENGE-1) && ((c=getchar()) != EOF) &&c!='\n' ;start++)
  16. {
  17. zeichenkette[start]=c;
  18. }
  19. zeichenkette[start] = '\0'; /* String-Ende markieren */
  20.  
  21. if(start==LAENGE-1) /* Wenn zu viele Zeichen sind, hier verarbeiten */
  22. {
  23. while(getchar()!='\n'); /* Zeichen solange einlesen bis Enter */
  24. }
  25.  
  26. printf("Bitte ein Zeichen eingeben:");
  27.  
  28. scanf("%c",&zeichen); /* Einlesen des gesuchten Zeichens */
  29.  
  30. position_zeichen = position(zeichenkette,zeichen);
  31.  
  32. if (position_zeichen == -1) /* ist das Zeichen nich vorhanden? */
  33. puts("Eingegebenes Zeichen ist nicht in der Zeichenkette enthalten!");
  34. else
  35. /* wenn ja, Ausgabe des Suchergebnisses */
  36. printf("Position des letzten %c ist an Stelle: %d\n", zeichen, position_zeichen+1);
  37.  
  38. return 0;
  39. }
  40.  
  41. /* Funktion zum Suchen des Zeichens */
  42. int position(char *zeichenkette, char zeichen)
  43. {
  44. int back = -1, i;
  45.  
  46. if(zeichenkette!=NULL) /* Wenn keine Zeichen vorhanden sind, Rückgabe von 0 */
  47. {
  48. /* Schleife zum Durchgehen der Zeichenkette */
  49. for(i = 0; zeichenkette[i] != '\0'; i++)
  50. {
  51. /* Kontrollausgabe der Zeichen mit der zugewiesenen Positionszahl */
  52. printf("An Stelle %4d steht das Zeichen = %c\n",i+1,zeichenkette[i]);
  53.  
  54. /* Vergleich der einzelnen Zeichen mit dem gesuchten */
  55. if (zeichenkette[i] == zeichen)
  56. {
  57. back = i; /* Position des gesuchten Zeichens speichern */
  58. }
  59. }
  60. }
  61. return back; /* Rückgabe der Position des gesuchten Zeichens */
  62. }
  63.  
  64.  
Success #stdin #stdout 0s 2056KB
stdin
abcdefgh0123456789xqwertz
x
stdout
Das ist ein Programm zum Vergleich einer Zeichenkette mit einem Zeichen
Bitte Zeichenkette mit maximal 99 Zeichen eingeben: Bitte ein Zeichen eingeben:An Stelle    1 steht das Zeichen  = a
An Stelle    2 steht das Zeichen  = b
An Stelle    3 steht das Zeichen  = c
An Stelle    4 steht das Zeichen  = d
An Stelle    5 steht das Zeichen  = e
An Stelle    6 steht das Zeichen  = f
An Stelle    7 steht das Zeichen  = g
An Stelle    8 steht das Zeichen  = h
An Stelle    9 steht das Zeichen  = 0
An Stelle   10 steht das Zeichen  = 1
An Stelle   11 steht das Zeichen  = 2
An Stelle   12 steht das Zeichen  = 3
An Stelle   13 steht das Zeichen  = 4
An Stelle   14 steht das Zeichen  = 5
An Stelle   15 steht das Zeichen  = 6
An Stelle   16 steht das Zeichen  = 7
An Stelle   17 steht das Zeichen  = 8
An Stelle   18 steht das Zeichen  = 9
An Stelle   19 steht das Zeichen  = x
An Stelle   20 steht das Zeichen  = q
An Stelle   21 steht das Zeichen  = w
An Stelle   22 steht das Zeichen  = e
An Stelle   23 steht das Zeichen  = r
An Stelle   24 steht das Zeichen  = t
An Stelle   25 steht das Zeichen  = z
Position des letzten x ist an Stelle: 19