Avatar billede huk Nybegynder
27. september 2006 - 15:06 Der er 14 kommentarer og
1 løsning

sætte strenge sammen?

Kan det lade sig gøre at sætte to strenge sammen når:
char streng1[8];
int streng2[8];

jeg vil gerne have det skrevet sammen i:

char streng3[16];

jeg har prøvet:

strcpy(streng3, streng1);
strcat(streng3, streng2);

og forventede så at de var kædet sammen, men det kan være man skal konvertere streng2 til typen char først??
Avatar billede huk Nybegynder
27. september 2006 - 15:19 #1
og kan man gøre det vha. itoa??
Avatar billede tokelil Nybegynder
27. september 2006 - 15:53 #2
Måske et dumt spørgsmål, men hvorfor har du en streng med type int? (Og ikke char eller wchar)
Er din "int streng2[8];" i virkeligheden en 8 int's, som du vil have tilføjet streng 1 efter hinanden?

så f.eks:
int streng2[8] = {1,2,3,4,5,6,7,8);
og du vil have streng3 til at være:
streng1 + "12345678"
?
Avatar billede segmose Nybegynder
27. september 2006 - 16:12 #3
Måske
sprintf(streng3, "%s%d", streng1, streng2[0]);
Avatar billede huk Nybegynder
28. september 2006 - 08:26 #4
doh
Avatar billede huk Nybegynder
28. september 2006 - 08:26 #5
det er min fejl.

streng2 er ikke af typen int, men af typen unsigned char
Avatar billede huk Nybegynder
28. september 2006 - 08:27 #6
så det jeg jagter er:
char streng1[8];
unsigned char streng2[8];
char streng3[16];


strcpy(streng3, streng1);
strcat(streng3, streng2);
Avatar billede huk Nybegynder
28. september 2006 - 09:37 #7
Jeg vil i første omgang prøve:

char streng1;
unsigned char streng2;
char streng3[16];


strcpy(streng3, streng1);//skal [0] angives efter streng3??
strcat(streng3, streng2);
Avatar billede tokelil Nybegynder
28. september 2006 - 10:00 #8
char streng1[8];
unsigned char streng2[8];
char streng3[16];

...

strcpy(streng3, streng1);
strcat(streng3, (char*)streng2);

Burde virke. (Det kræver selvf. at du har noget stående i streng1 og streng2 eller de i det mindste er null terminerede, da dit program ellers højest sandsynligt vil crashe)
Avatar billede tokelil Nybegynder
28. september 2006 - 10:02 #9
char streng1; er ikke en streng, men en enkelt char. strcpy og strcat behandler strenge der er null terminerede, så de virker natuligvis ikke på en enkelt char.
Avatar billede huk Nybegynder
28. september 2006 - 10:17 #10
okay.

kan man så lægge en enkelt karakter ind i en streng?
Avatar billede huk Nybegynder
28. september 2006 - 10:21 #11
og når du alligevel er igang:-)

hvad er så forkellen på at skrive:
strcat(streng3, (char*)streng2);
og
strcat(streng3, char* streng2);
Avatar billede segmose Nybegynder
28. september 2006 - 10:40 #12
"(char *)" er en typecast, fortællet compileren at den skal opfatte det efterfølgende som en "char *", meget stærkt men forfærdeligt hvis det går galt.
"char *" er en type erklæring
så strcat(streng3, char* streng2); vil mangle sit andet argument.
Avatar billede tokelil Nybegynder
28. september 2006 - 10:51 #13
Jeg kan ikke lige komme i tanke om en funktion til at lægge en enkelt char ind i en streng... Men det er da rimeligt nemt at gøre med strcat.

char enkelttegn[2] = {'a', 0};
char streng1[256];
strcpy(streng1, "Dette er en streng + ");
strcat(streng1, enkelttegn);
Avatar billede huk Nybegynder
28. september 2006 - 11:10 #14
ok takker
smid et svar tokelil
Avatar billede tokelil Nybegynder
28. september 2006 - 13:27 #15
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester