Ausgabe soll so aussehen

illtiss

illtiss

Routinier
Hallo zusammen, vielleicht kann mir mal einer weiterhelfen...

Folgende Ausgabe soll erscheinen (Konsole Windows)

Man gibt ein Wort ein, z.B. "Hase".

Über die eingabe.length() hole ich mir die Länge der Eingabe. In diesem Fall
4.

Er soll nun anfangen Hase so auszugeben:

H
Ha
Has
Hase
Has
Ha
H

Das müsste doch über 2 For Schleifen zu realisieren sein, sprich die erste die bis zur länge des strings ausgibt, und dann eine mit i-- also rückwärts läuft bis null erreicht ist.

Aber wie kann ich die Zeichen im String in der Schleife ansprechen, bzw. ausgeben?
 
In C sind Strings nur Arrays (Listen) von Zeichen. "Hase" könnte man also auch schreiben als:

Code:
char *string = {'H','a','s','e','\0'}

Wenn ich mich nicht irre. Ich denke dann sollte es in C++ genauso sein.
Was string[0] nun enthält sollte dir damit ja klar werden. Damit kannst du bestimmt arbeiten. :)
 
Zuletzt bearbeitet:
Da fehlt doch noch der(die/das?) String-terminierende Null-Char. ('\0')

edit: haha (siehe anderes edit..)
 
Jap, ich denk, das bekomm ich hin... Wenn`s läuft dann post ich`s ma.
 
Habs mal für die "Hinrichtung" programmiert:

Code:
#include <stdio.h>
#include <string.h>

int main (int argc, char *argv[])
{
int i=0;
int ii=0;
int len=0;

  if(argc < 2)
  {
    printf("Parameter fehlt!\n");
    return 1;
  }
  else
  {
    len = strlen(argv[1]);
    for(i=0; i<len; i++)
    {
      for(ii=0; ii<=i; ii++)
      {
        printf("%c", argv[1][ii]);
      }
    printf("\n");
    }
    return 0;
  }
}
 
Wenn Du das ganze auf "C++-Art" machen moechtest (und der Hinweis auf 'eingabe.length' deutet darauf hin, dass es sich um ein C++-Programm handelt), so kannst Du die einzelnen Buchstaben eines std::string's mit eingabe.at(i) ansprechen.

Um es mit einer Schleife hinzubekommen:
Code:
#include <iostream>
#include <cmath>
#include <string>

int main()
{   
    std::string hase ("Hase");
    
    for(int i = - int(hase.length())+1; i < int(hase.length()); ++i)
    {
          std::cout << hase.substr(0, hase.length()-std::abs(i)) << '\n';
    }   
    return 0;
}

Ich gebe zu, dass das wahrscheinlich ein kleiner 'overkill' fuer das Problem ist...
 

Ähnliche Themen

while-Bedingung wird nicht (richtig) überprüft?

Server-Monitoring mit RRDTool

CGI laesst sich nicht ausfuehren

Zurück
Oben