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: TTAGCVon 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.