char a = char b[10] + char c[10]
-
Hallo,
bei mir gehts so nicht. So sollte es besser gehen:
char x[]="Wort"; char *y; y=strcat(x,"spiel"); printf(y);
PS: eine string ist nichts anderes als ein CharArray das mit '\0' abgeschlossen ist. Da gibts nicht zu konvertieren.
grüße Con@n
-
Original erstellt von Con@n:
**```cpp
char x[]="Wort";
char *y;y=strcat(x,"spiel");
printf(y);BUMM
x hat nur platz für "Wort". "spiel" hat keinen Platz mehr -> undefiniertes verhalten.und zuweisen tut man strings nicht so:
char arr[10]="test";
char arr2[10]="testili";
arr=arr2;
sondern
strcpy(arr,arr2);nix für ungut aber: nochmal n bisschen in tutorials lesen
-
nix für ungut aber: nochmal n bisschen in tutorials lesen
Jaja is mir danach auch aufgefallen, dass es nicht funzt.
Aber bei strcpy hat er mir auch nur so was komisches hingemacht:/* test.c */ #include <stdio.h> #include <string.h> int main() { char txt[4]; char titel[10]; char datum[10]; char name[26]; scanf("%s", txt); scanf("%s", titel); scanf("%s", datum); printf("Ausgabe:\n"); printf("%s\n", titel); printf("%s\n", datum); printf("Kopieren...:\n\n"); getchar(); strcpy(name, &titel); strcat(name[11], &datum); strcat(name[21], &txt); printf("Fertig!!!\n"); printf("Ergebnis:\n"); printf("Name = %s\n", name); getchar(); }
Eingaben:
.txt
1234567890
0987654321Ausgaben:
12345678900987654321
0987654321
Kopieren...:Fertig!!!
Ergebnis:
123456789009876543211Das müsste Falsch sein oder?
@eizo:
ein string ist ein char Arrey (wird durch die [] angezeigt)[ Dieser Beitrag wurde am 08.03.2003 um 10:30 Uhr von quizzmaster editiert. ]
-
Original erstellt von quizzmaster:
*```cpp
/ test.c /
#include <stdio.h>
#include <string.h>
int main()
{
char txt[4];
char titel[10];
char datum[10];
char name[26];
scanf("%s", txt);
scanf("%s", titel);
scanf("%s", datum);
printf("Ausgabe:\n");
printf("%s\n", titel);
printf("%s\n", datum);
printf("Kopieren...:\n\n");
getchar();
strcpy(name, &titel);//warum &
strcat(name[11], &datum); //name[11] ist n char und kein char
strcat(name[21], &txt); //und was wenn titel nicht 10 zeichen lang ist sondern nur 5?
printf("Fertig!!!\n");
printf("Ergebnis:\n");
printf("Name = %s\n", name);
getchar();
}BITTE lies dir grundlegende Sachen zu Zeigern durch!
-
/* test.c */ #include <stdio.h> #include <string.h> int main() { char txt[4]; char titel[10]; char datum[10]; char name[26]; scanf("%s", txt); scanf("%s", titel); scanf("%s", datum); printf("Ausgabe:\n"); printf("%s\n", titel); printf("%s\n", datum); printf("Kopieren...:\n\n"); getchar(); strcpy(name, titel); strcat(&name, &datum; strcat(&name, &txt); printf("Fertig!!!\n"); printf("Ergebnis:\n"); printf("Name = %s\n", name); getchar(); }
So ises richtig oder?
Denn bei mir stimmts jetzt[ Dieser Beitrag wurde am 08.03.2003 um 13:11 Uhr von quizzmaster editiert. ]
-
Original erstellt von quizzmaster:
**
strcat(&name, &datum;
strcat(&name, &txt);
So ises richtig oder?
**nein. lass die & weg. du hast doch schon zeiger.
bei arrays ists nicht schlimm (da wirds AFAIR ignoriert) aber wenn du mal echte zeiger hast, dann crasht es.
-
Ok danke aber es hat funktioniert.
Und Arrays sind schon zeiger, oder?
-
Original erstellt von quizzmaster:
Ok danke aber es hat funktioniert.
Und Arrays sind schon zeiger, oder?ich sagte ja: bei arrays funktioniert es.
arrays und zeiger sind nicht gleich:char arr[10];
++arr; //fehler
-
Das liegt wohl daran, dass arr ein const char* ist.
-
Original erstellt von WebFritzi:
Das liegt wohl daran, dass arr ein const char ist.*nein, denn ich kann ja
arr=3;
sagen.
kann also nicht
const char seinvielleicht meinst du ja char const*
wenn dem so wäre, dann wäre
sizeof arr == sizeof (char* const)
was bei mir leider nicht der fall ist.vielleicht solltest du dich auch mit zeigern beschaeftigen?