String kürzen



  • Hallo

    Ich habe folgendes Problem:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define Grenze 88
    
    int start,c;
    char zeichenkette1[Grenze];
    
    int main(void)  {
    for (start=0;(start<Grenze-1) && ((c=getchar()) != EOF) &&c!='\n' ;start++)
        {
            zeichenkette1[start]=(char)c;
    
        }
        //Hinzufügen eines Nullbytes an die letzte Stelle
        zeichenkette1[start] = '\0';
    
        int laenge=strlen(zeichenkette1);
    
        printf("Laenge Eingabe DNA: %d\n",laenge);
         printf("%s\n",zeichenkette1);
    
    }
    

    Liest per Einzelzeicheneingabe von der Konsole und weist dies 'zeichenkette1' zu.
    Jetzt möchte ich den ersten Buchstaben des eingegeben String "abschneiden".
    Zum verdeutlichen mal folgendes Bsp:

    Eingabestring: ATTAGC
    Ausgabestring: TTAGC

    Von meinem Verständnis aus, geschieht das doch sicher über den Index oder?
    Heißt quasi ich müsste einen zweiten String deklarieren und diesem wie folgt handhaben:

    zeichenkette2=zeichenkette1-zeichenkette1[0];

    Sind da meine Ansätze/Erkenntnisse richtig?



  • Wenn du alles bis auf das erste Zeichen willst, musst du zeichenkette + 1 sagen, das ist die Adresse des ersten Zeichens. Versuch's so:

    char *teilstring = zeichenkette + 1;
    puts (teilstring);
    

    🙂



  • Strings gibt's ja eigentlich nicht in C. Es sind Arrays.

    String ab dem zweiten Zeichen ausgeben geht so:

    printf("%s\n",zeichenkette1 + 1);
    


  • Und das letzte Zeichen kannst du mit zeichenkette[strlen(zeichenkette)-1] = '\0'; kürzen. Du musst aber aufpassen, weil sowas wie zeichenkette = "ATTAGC" nicht beschreibbar ist, da müsstest du eine Kopie machen.



  • Und der PH-Wert ist der negative dekadische Logarithmus der Oxoniumionenkonzentration.
    🙂


Anmelden zum Antworten