Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallöchen!

Ich hab Folgendes Problem. Ich muss in einer Aufageb (folgt) folgen von Leerzeichen durch die korrete anzahl von Tabs und Leerzeichen ersetzen. Nun hab ich das Programm dazu geschrieben (und diesmal auch ganz ganz allein) bekomme aber immer 2 leerzeichen mehr ausgegeben wie ich eingebe. Weiß evt jemand woran das liegen kann? Ich weiß es leide rnit... Zerbrech mir nun seit gestern den kopf darüber und dacht mir jetzt evt könnt ihr mir ja helfen.

Hier mal der Quellcode:

*Schreibe ein Programm entab, das folgen von Leerzeichen durch die minimale 

*Anzahl von Tabulatorzeichen und Leerzeichen ersetzt, um die gleichen Zwischenräume 

*zu erzielen. Benutzen Sie die gleichen Tabulatorpositionen wie für detab. Wenn 

*entweder ein Tabulatorzeichen oder ein Leerzeichen genügen würden, um eine 

*Tabulatorposition zu erreichen, was sollte bevorzugt werden?

* ********************************************************/


#include <stdio.h>

#define Tab 4


void main()

{

        // deklaration der variablen

        int iEingabe;   // Eingabetext

        int leer;     // Anzahl der Leerzeichen

        int atab;     // Anzahl der Tabulatoren

        int rest_leer;  // restliche leerzeichen nach abzug der tabs


        // Zuordnung der werte    

        leer = 0;         // Anzahl der Leerzeichen

        atab = 0;         // Anzahl der Tabulatoren

        rest_leer = 0;     // restliche anzahl der leerzeichen nach abzug der tabs


        // Wird solange ausgeführt bis iEingabe A ist

        while ((iEingabe = getchar()) !='A')

        {

            if (iEingabe == ' ')    

            {

                ++ leer;       

            }

            else

            {

                if (leer !=0)   

                {

                    // printf ("%d", leer);   

                    atab = leer / Tab;

                    //printf ("%d", atab);

                    rest_leer = leer % Tab;

                    //printf ("%d", rest_leer);

                    while (atab !=0)

                    {

                        putchar ('\t');

                        -- atab;

                    }                   

                    while (rest_leer !=0)

                    {

                        putchar (' ');

                        -- rest_leer;

                    } 

                }   

            leer = 0;

            putchar (iEingabe);   

            } 

        }

}        



Danke schon ma im Vorraus.

Liebe Grüße die Zicke

Hat sich erledigt... Ich wusste nicht das der Dos editor ne eigene Tabweite hat.:upps Aus dem grund hatte ich immer 2 Zeichen mehr wie ich eingab.

Trotzdem Danke

ah ok... danke das ist lieb.

Nach ein kleiner Verbesserungsvorschlag, ich würde statt dem define


#define Tab 4
[/PHP]

eine Variable

[PHP]
const int Tab = 4;

benutzen.

Das macht es vorallem bei größeren Programmen einfacher Fehler durch falsche Werte zu vermeiden.

:confused:

Ich kann zwar nachvollziehen dass man lieber den Compiler als den Präprozessor nimmt, aber inwiefern kann man dadurch Fehler durch falsche Werte vermeiden? Bitte um Aufklärung :)

Der Wert in der Variablen kann zwar auch falsch sein, aber bei define kannst du alles angeben kannst was du willst, in der Variablen hast du zumindest schonmal den richtigen Datentyp.

Beim define bekommst du dann zwar wenn du Glück hast direkt eine Fehlermeldung beim Compilieren, aber wenn du Pech hast halt nicht.

Ok stimmt, gerade dieses Beispiel ist eigentlich gut dazu geeignet, der Name "Tab" kann schon fehlinterpretiert werden.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.