-
Hallo,
versuche gerade ein Programm zu schreiben, mit dem
ich zwei Zeichenketten zusammenfassen möchte :
z.b.
a= abc
b= def
Ausgabe: abcdef
Ich muss auf string verzichten, stattdessen char verwenden.
Nun definiere die ich die eingabegröße so:
char eingabe1[15]
char eingabe2[15]
Und natürlich "def" an "abc" anhängen,
so dass die Ausgabe : abcdef erfolgt.
Danke euch im vorausGeändert von kafkef (07.12.11 um 22:13 Uhr)
-
Hi
ein char-Array, wie du da hast, ist im Grunde nichts anderes als das "String", das dir bekannt ist.
Und wenn du die Eingabe mit irgendeiner halbwegs normalen Methode einliest
brauchst du überhaupt nichts zusätzlich tun.
Das Endzeichen \0 wird von der Einlesefunktion automatisch angehängt.
Zum Einlesen gibts zwar viele Möglichkeiten, empfehlen würde ich gets für diesen Fall.
Code cpp:1 2
char eingabe1[15]; gets(eingabe1);
Zusammenhängen kannst du Strings dann mit strcat.
Code cpp:1
strcat(eingabe1, eingabe2);
GrußNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
07.12.11 18:40 #3
Klammer bitte anderstrum
Fehlermeldung bitte!
Google - Dein Freund und Helfer
-
danke für die Vorschläge.
Ich habe vergessen zu erwähnen, dass ich auch auf strcat verzichten muss.
Also muss ich andere Wege nutzen, um die Zeichenketten zu verbinden.
mit new und delete?
-
Ok, dann so?
Code c:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
char Eingabe1[15]; char Eingabe2[15]; scanf("%s",Eingabe1); scanf("%s",Eingabe2); int i = 1; int len1 = strlen(Eingabe1); int len2 = strlen(Eingabe2); while(i != len1 + len2) { Eingabe1[len1 + i -1] = Eingabe2[i-1]; i++; } //String terminieren Eingabe1[strlen(Eingabe1) + 1] = '\0'; printf(Eingabe1);
Gruss
cwriter
/EDIT: Bedenke aber, dass damit die Länge des 1. Strings + die Länge des 2. Strings maximal 15 betragen darf!Geändert von cwriter (07.12.11 um 19:56 Uhr)
Intel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
-
new/delete ist was ganz Anderes.
Wenn du auf das fertige strcat verzichten musst, programmierst du es eben nach.
Code cpp:1 2 3 4
int i = 0, j = 0; while(eingabe1[i++]); i--; while(eingabe1[i++] = eingabe2[j++]);
Gruß
@cwriter: scanf-%s hat Whitespaceprobleme.
Und der Code...
...macht seltsame Sachen.
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
......................
Geändert von kafkef (07.12.11 um 22:16 Uhr)
-
@sheel
So? Bei mir läuft's... Ja, er ist nicht schön, aber mal schnell geschrieben. Und ja, scanf() hat diese Probleme. Ich finde scanf() aber dennoch nicht schlecht, da man beispielsweise mit der Eingabe
die Entertaste nur einmal betätigen muss. Kommt auf die Vorlieben an, fgets(Eingabe1, 15, STDIN); (hoffe mal stimmt soCode :1
asd fgh
) geht auch. Aber da muss sich kafkef entscheiden.
@kafkef
Bitte was?! Keine Schleifen? Dann kopierst du die While() einfach als if 15x. Wenn dein Dozent das so mag
Keine String.h? Die bezieht sich doch auf die c++-Strings?
Funktionen verboten? Alle? Muss man die Funktionen selbst schreiben oder ist auch das verboten?
Gruss
cwriterGeändert von cwriter (07.12.11 um 20:12 Uhr)
Intel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
-
Was soll daran kompliziert sein? Es muss doch nur ein Rad bewegt werden, man kann aufsteigen, es kommt die Matschhütte und durch den Regenbogen gelangst du zum hungrigen Affen, der Affenschwanz wird gezogen und bums kommst du zum Paradispark.
-
Uups, fail. Sorry

@kafkef
Hat dein Dozent irgendwelche Hinweise gegeben? Ich meine, ohne while() wird das ganze sehr mühsam...
Gruss
cwriterIntel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
-
@cwriter
leider keine Hinweise...
Nur die Aufgabenstellung:
.. zwei Zeichenketten von der Tastatur einliest und in C-Strings (char-Arrays) speichert. Dann soll der zweite String an den ersten String angehängt werden. Achten Sie dabei auf die Nullterminierungszeichen!
Anschließend sollen zur Kontrolle beide char-Arrays auf dem Bildschirm ausgegeben werden.
-
@keine Schliefen: Aber if und goto sind erlaubt

Dein Dozent ist wohl der Hardcore-Assembler...
Ich schreib was, Moment...
edit:
Code cpp:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
#include<stdio.h> #include<string.h> void main() { char eingabe1[100]; char eingabe2[100]; gets(eingabe1); gets(eingabe2); int i = 0; int j = 0; mark2: if(!eingabe1[i]) goto mark1; i++; goto mark2; mark1: mark4: if(!(eingabe1[i] = eingabe2[j])) goto mark3; i++; j++; goto mark4; mark3: puts(eingabe1); }
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Ah, moment, habe was (frech von sheel adaptiert
)
Code c:
So. Funktioniert's?
Gruss
cwriterGeändert von cwriter (07.12.11 um 20:41 Uhr)
Intel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
-
So ists noch kürzer
Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Der Code ist ja auch eigentlich von dir

Gruss
cwriterIntel inside - Idiot outside :-)
Ich schreibe in C und bin Anfänger.
______________________________
Falls ich eines Tages einen guten Beitrag schreiben werde, bitte bewerten und/oder Danke sagen.
Danke
Ähnliche Themen
-
Zeichenkette aus Zeichenkette ersetzen mit Hashtable
Von newbie1234 im Forum JavaAntworten: 4Letzter Beitrag: 23.06.10, 17:44 -
Eine mit Sonderzeichen bestückte Zeichenkette ohne konvertierung in SQL_Datenbank ein
Von Herror im Forum PHPAntworten: 10Letzter Beitrag: 13.11.08, 13:16 -
Eine zeichenkette(String) durchlaufen und die einzelnen Buchstaben auslesen in VBA?
Von rene2407 im Forum Office-AnwendungenAntworten: 1Letzter Beitrag: 11.10.07, 12:07 -
String nach bestimmter Zeichenkette durchsuchen
Von Aleyna23 im Forum JavaAntworten: 3Letzter Beitrag: 25.04.07, 09:37 -
String enthält Zeichenkette?
Von RMI_17 im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 13.03.06, 13:26



9Danke

Zitieren


Login






