18. september 2005 - 18:38Der er
23 kommentarer og 1 løsning
Streng konkatenering og globale arrays
Jeg har følgende spørgsmål angående C.
1. Jeg vil gerne bruge strcmp til at sammenligne 2 strenge, begge variabler. Den første streng skal dog i sammenligningen have tilføjet en streng konstant ".exe". Dette gør jeg lige nu med strcat. Men problemet med den er at den ændrer min første streng variabel, og det går ikke, da jeg skal bruge den præcis samme variabel senere.
Så mit spørgsmål går på hvordan jeg ellers kan tjekke med strcmp for om Variabel1 + ".exe = Variabel2.
2. Jeg har i min kode 2 funktioner, som begge skal bruge det samme array i nogle beregninger. Derfor skal jeg jo gerne kunne erklære det array globalt. Men problemet er at jeg først kan erklære det i løbet af min første funktion, da det kræver en variabel som jeg udregner i løbet af den funktion.
Fordi jeg ikke ønsker at have den med som parameter :) Det med den globale pointer virker jo fint nok, men da jeg er vant til at gøre det på en lidt anden måde fra andre programmerings sprog, er jeg nødt til at spørge om der ikke er andre måder?
Jeg har lavet et lille test program, der viser hvad jeg har i tankerne.
int a[]; int t;
main() { func1(2); func2(2); }
func1(int d) { for (t=1; t<=d; t++) { a[t]=t; } for (t=1; t<=d; t++) { a[t]=2 * a[t]; } }
Formentlig kan man ikke bare skrive int a[]; i C (det gav i hvert fald en kompilerings fejl), men det er mest noget i den stil jeg er ude efter, ligesom man f.eks. kan gøre det i Java ved
int a[]; a = new int[2];
Men er det på nogen måde muligt at skrive det på samme måde i C? Uden det med en global pointer?
Næh, ikke andet end at jeg foretrækker at initialisere variabler med en linje, ikke flere, derfor foretrækker jeg altid de løsninger, hvis de eksisterer :) Gør de ikke, tager jeg bare den bedst mulige løsning :)
Fair nok, dit valg, men jeg skal jo lige spørge for at være sikker, ikke? :)
Tak for hjælpen i hvert fald.
Synes godt om
Ny brugerNybegynder
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.