Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   c++: tekst omdraaien (https://forum.scholieren.com/showthread.php?t=383886)

BlackMystery 20-02-2003 13:16

c++: tekst omdraaien
 
ik moet een oefening maken voor informatica
hierbij moet ik een regel tekst lezen
en deze in omgekeerde volgorde weergeven
kan iemand me hierbij helpen?

'Sunburn' 20-02-2003 13:31

Citaat:

BlackMystery schreef:
ik moet een oefening maken voor informatica
hierbij moet ik een regel tekst lezen
en deze in omgekeerde volgorde weergeven
kan iemand me hierbij helpen?

Uhhh, van achter naar voor inlezen en opslaan in een buffer? Lijkt me toch niet al te moeilijk.

'Sunburn' 20-02-2003 13:40

Offtopic:

Wat een intrigerende opdrachten krijgen jullie daar trouwens :D

Lethalis 20-02-2003 14:31

Simpel quick'n'dirty voorbeeldje met STL:

Code:

#include <iostream>
#include <string>

using namespace std;

int main(int argc, char* argv[])
{
  string sText;

  cin >> sText;

  int iLength = sText.length();
  while(iLength > 0)
  {
    cout << sText[--iLength];
  }

  getchar();

  return 0;
}

Om je een idee te geven. Je kunt natuurlijk ook gewoon een char buffer gebruiken icm strlen. Wat je wilt.

Citaat:

'Sunburn' schreef:
Uhhh, van achter naar voor inlezen en opslaan in een buffer? Lijkt me toch niet al te moeilijk.
Of:
- gewoon inlezen
- string achterstevoren doorlopen en weergeven

cut_off 20-02-2003 14:39

Citaat:

'Sunburn' schreef:
Offtopic:

Wat een intrigerende opdrachten krijgen jullie daar trouwens :D

nee laat ze om te beginnen eens spraakherkenningssoftware schrijven :rolleyes:

Dr HenDre 20-02-2003 14:47

PHP-code:

#include <iostream.h>
#include <iomanip.h>

int main ()
{
 const 
int aantal=30;
 
int ia[aantal];
 
cout << "Geef " << aantal << " gehele getallen: \n";
 for (
i=0i<aantali++) cin >> a[i];
 
cout << "In omgekeerde volgorde waren dit de getallen: \n";
 for (
i=0i<aantali++)
 
cout << setw(6) << a[aantal-i-1] << (10 == '\n' '  ');
 return 
0;


hij moet werken als het goed is, k heb het effe zo uit mn hoofd gedaan. Anders moet je m effe een beetje aanpassen :) :D

/*edit
hij doet het niet, een rekenfoutje, effe kijken hoe k het kan oplossen
*/

Dr HenDre 20-02-2003 14:48

Citaat:

a new nose schreef:
nee laat ze om te beginnen eens spraakherkenningssoftware schrijven :rolleyes:
idd daar ben ik owk mee begonnen, veel verder ben ik nu niet hoor :D

Lethalis 20-02-2003 14:56

Citaat:

Dr HenDre schreef:
hij moet werken als het goed is, k heb het effe zo uit mn hoofd gedaan. Anders moet je m effe een beetje aanpassen :) :D
Euhm, er staat "een regel in omgekeerde volgorde weergeven".

Daarnaast zou ik jouw probleempje, een reeks waarden in omgekeerde volgorde weergeven, zo doen:

Code:

#include <iostream.h>

int main()
{
  const int aantal = 30;

  int i, a[aantal];

  cout << "Geef " << aantal << " gehele getallen: \n";
  for (i = 0; i < aantal; i++) cin >> a[i];

  cout << "In omgekeerde volgorde waren dit de getallen: \n";
  for (i = aantal-1; i >= 0; i--) cout << a[i] << "\n";

  getchar();

  return 0;
}

Maar dat is niet wat hij vraagt..

Dr HenDre 20-02-2003 15:06

k heb m opgelost
PHP-code:

#include <iostream.h>
#include <iomanip.h>

int main ()
{
 const 
int aantal=5;
 
int ia[aantal];
 
cout << "Geef " << aantal << " gehele getallen: \n";
 for (
i=0i<aantali++) cin >> a[i];
 
cout << "In omgekeerde volgorde waren dit de getallen: \n";
 for (
i=0i<aantali++)
 
cout << setw(5) << a[aantal-i-1];
 
cout <<"\n";
 return 
0;



Dr HenDre 20-02-2003 15:08

ow w8, je wil niet alleen getallen maar owk letters,
hmmm effe kijken of ik iets kan breien

eddie 20-02-2003 15:19

Weetje, d'r zijn standaard functie voor hoor :o

Dr HenDre 20-02-2003 15:23

Citaat:

eddie schreef:
Weetje, d'r zijn standaard functie voor hoor :o
waarvoor :confused: voor zijn probleem voor zover ik weet niet

eddie 20-02-2003 15:31

Citaat:

Dr HenDre schreef:
waarvoor :confused: voor zijn probleem voor zover ik weet niet
Om een string om te draaien?

strrev bijvoorbeeld...

Dr HenDre 20-02-2003 17:38

Citaat:

eddie schreef:
Om een string om te draaien?

strrev bijvoorbeeld...

dat is tog in php, of vergis ik me?

eddie 20-02-2003 19:01

Jup.

Code:

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

int main( void )
{
  char regel[254], omregel[254];

  cout << "Regeltje?\n";
  cin >> regel;
  omregel = strrev( regel );
  cout << "De omgekeerde regel: " << omregel;
  getch();
  return 0;
}

Zou moeten werken ;)

Dr HenDre 20-02-2003 19:09

Citaat:

eddie schreef:
Jup.

Code:

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

int main( void )
{
  char regel[254], omregel[254];

  cout << "Regeltje?\n";
  cin >> regel;
  omregel = strrev( regel );
  cout << "De omgekeerde regel: " << omregel;
  getch();
  return 0;
}

Zou moeten werken ;)

--------------------Configuration: Cpp1 - Win32 Debug--------------------
Compiling...
Cpp1.cpp
D:\My Documents\C++\Cpp1.cpp(11) : error C2440: '=' : cannot convert from 'char *' to 'char [254]'
There are no conversions to array types, although there are conversions to references or pointers to arrays
Error executing cl.exe.

Cpp1.obj - 1 error(s), 0 warning(s)

Lethalis 20-02-2003 20:17

Citaat:

eddie schreef:
char omregel[254];

omregel = strrev( regel );

Zou moeten werken ;)

Het lijkt me sterk dat je de hele string in het eerste element van omregel kunt plaatsen :p

Amstl 20-02-2003 21:58

Zo..

Code:

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

using namespace std;

void wissel( char & a, char & b );
void draaiom( char s[] );

void main()
{
  char str[ 60 ];

  cout << "Voer een string in: ";
  cin.getline( str, 60 );

  draaiom( str );
  cout << "De string is omgekeerd: " << str;

  cin.get();
}

void wissel( char & a, char & b )
{
        char hulp;
        hulp = a;
        a = b;
        b = hulp;
}

void draaiom( char s[] )
{
        int lengte = strlen( s ), laatste = lengte - 1;
        for( int i = 0; i < lengte / 2; i++ )
        wissel( s[ i ], s[ laatste - i ] );
}


Koen 20-02-2003 22:36

Citaat:

Dr HenDre schreef:
dat is tog in php, of vergis ik me?
PHP is grotendeels in C geschreven dus 't zou best kunnen dat je functies die je in PHP ziet, ook in C tegenkomt. Althans, dat lijkt me vrij aannemelijk.

niemand 20-02-2003 23:03

Citaat:

Koen schreef:
PHP is grotendeels in C geschreven dus 't zou best kunnen dat je functies die je in PHP ziet, ook in C tegenkomt. Althans, dat lijkt me vrij aannemelijk.
nou, het lijkt me meer dat dat komt doordat php gewoon zo geschreven is dat het veel lijkt op c
ik kan opzich een taal schrijven in c die zelf totaal niet op c lijkt

Koen 21-02-2003 06:50

Citaat:

niemand schreef:
nou, het lijkt me meer dat dat komt doordat php gewoon zo geschreven is dat het veel lijkt op c

Ook :)

Citaat:


ik kan opzich een taal schrijven in c die zelf totaal niet op c lijkt

True, maar ik bedoel daarmee te zeggen dat voor C functies geschreven kunnen worden die voor C ook bestaan omdat ze op dezelfde manier kunnen werken.. Lastig uit te leggen wat ik bedoel ;)

Lethalis 21-02-2003 07:55

Dat PHP op C lijkt hebben ze met opzet gedaan. Punt 1 vonden de ontwikkelaars van PHP de C syntax gewoon goed (ze zijn hem immers gewend). Punt 2 zorgt een C-like syntax met grotendeels dezelfde functies ervoor dat de taal PHP veel sneller verspreid en gebruikt wordt door anderen, aangezien de benodigde leertijd zo kort mogelijk is. Voor de rest hebben ze nog een paar handige functies van PERL overgenomen.

eddie 21-02-2003 07:55

Citaat:

******** schreef:
Het lijkt me sterk dat je de hele string in het eerste element van omregel kunt plaatsen :p
Aaaah, het is ook lang geleden hè ;)

iets als
Code:

char *regel, *omregel;
dan?

(het is idd te lang geleden voor mij :o:D)

McMotion 21-02-2003 20:03

Citaat:

******** schreef:
Het lijkt me sterk dat je de hele string in het eerste element van omregel kunt plaatsen :p
hoezo?? hij zei toch omregel = strrev(regel) in plaats van omregel[0] = strrev(regel)? :)

je gebruikt alleen dat geheugenblok waar omregel naar wijst niet... je zou daar dus beter een char * van kunnen maken (of nog beter natuurlijk dat hele omregel weglaten, en regel op het scherm zetten want hij returnt gewoon regel denk ik :p


Alle tijden zijn GMT +1. Het is nu 14:46.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.