Avatar billede anders_ Nybegynder
16. marts 2002 - 00:56 Der er 10 kommentarer og
1 løsning

Hilfe

Jeg har lavet noget kode, kig lige på det. Kommentarene skulle nok forklare det meste.

-------

#include <stdio.h>
#include <iostream.h>
#include <string.h>


void main(void)
{
char regn[1000];
int index;
int position;
   
printf("Velkommen til min lommeregner.\n - - - - - - - - - - - - - - - -");
printf("\n=> ");
cin >> regn;

//Løber regnestykket igennem
for (index = 0; regn[index] != NULL; index++)
{

    //Leder efter '+'
    if (regn[index] == '+')
    {
        //Det er så her den skal tage de tegn, der kommer før + og smidde dem i en variabel MEN HVORDAN?
        for (position = 1; position <= index; position++)
        {
           
        }
    }

}

       
}

------
Avatar billede anders_ Nybegynder
16. marts 2002 - 00:56 #1
:)
Avatar billede conrad Nybegynder
16. marts 2002 - 05:59 #2
Måske kan du bruge strncpy som kopierer n tegn fra et char[] til et andet
Så slipper du måske også for din inderste for løkke

se på
http://www.cplusplus.com/ref/cstring/strncpy.html
Avatar billede anders_ Nybegynder
16. marts 2002 - 15:20 #3
Nej nej. Jeg skal have kopieret nogle tegn fra int til char[]. Altså jeg skal have kopieret 3 tegn fra position til fx char noget[]. Så ville jeg bruge noget = noget + position, men det kan man ikke. Hvad gør jeg så ?
Avatar billede anders_ Nybegynder
16. marts 2002 - 15:21 #4
Altså hvis der fx står 123 foran plus, så skal de i en variabel
Avatar billede anders_ Nybegynder
16. marts 2002 - 19:25 #5
Okay, måske skulle jeg stille mit spørgsmål på en lidt anden måde. Jeg har en streng, som jeg løber igennem. Den stopper så når den kommer til '+', og de tegn der er før '+' vil jeg gerne have ind i en variabel. H V O R D A N?
Avatar billede kamikaze Nybegynder
18. marts 2002 - 10:56 #6
Du leder efter plus-tegnet, og finder det på position n. Herefter ved du at der fra 0-n ligger nogle tal du skal have over i en variabel. Du kan bruge memcpy(dest, src, length) til at kopiere det over i et temp char array, og nul-terminere det på position length+1. Derefter kan du bruge funktionen atoi() til at konvertere fra ascii til integer.

Noget a la:

char cTal[100];
int iTal;
while (regn[index] != '+') index++;
memcpy(cTal, regn, index-1);
cTal[index] = 0;
iTal = atoi(cTal);
Avatar billede kamikaze Nybegynder
18. marts 2002 - 11:00 #7
Du kan også bruge memcpy fra et givent sted i regn:

memcpy(cTal, &regn[5], 3); //Her kopierer du regn[5 - 8] over i cTal
Avatar billede kamikaze Nybegynder
18. marts 2002 - 14:18 #8
FX: (msvc++)

#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <string.h>
#include <conio.h>


void main(void)
{
    char regn[1000];
    char temp[100];
    int index;
    int position;
    int tal[100];
    int antal;
    int total;
   
    printf("Velkommen til min lommeregner.\n - - - - - - - - - - - - - - - -");
    printf("\n=> ");
    cin >> regn;
    regn[strlen(regn) + 1] = 0; // nul-terminer strengen

    //Løber regnestykket igennem
    index = 0;
    position = 0;
    antal = 0;
    while (regn[index])
    {
        while (regn[index] != '+' && regn[index]) index++;
        memcpy(temp, &regn[position], index - position);
        temp[index - position] = 0;
        position = ++index;
        tal[antal++] = atoi(temp);
    }
    // Vis alle tal
    for (int i=0; i<antal; ++i) cout << "Tal nr. " << i << " = " << tal[i] << endl;
    // Udregn
    total = 0;
    for (i = 0; i<antal; ++i) total += tal[i];
    cout << "Det giver : " << total << endl;
    cout << "<any key>" << endl;
    getch();
}
Avatar billede professoren Nybegynder
19. marts 2002 - 17:57 #9
en kalkulator (regnemaskine) program findes som allerførse eksemper i
Kernigan & Ritchie "the C programming language" (også oversat til Dansk)--
prøv at kigge på det...
Avatar billede kamikaze Nybegynder
20. marts 2002 - 19:49 #10
Den findes også i Bjarne Stroustrup "The C++ Promming Language"... (vist nok ikke oversat til Dansk) :-)
Avatar billede kamikaze Nybegynder
20. marts 2002 - 19:52 #11
Men det var jo ikke det der var spm :-)
(Som jeg læste det, var det et spm om hjælp til/med noget hjemmelavet kode!?!)
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