![]() |
[C++] Zit er een 6 of 9 in een int
Ik heb een kort vraagje, hoe kan ik kijken of er een 6 of een 9 in een bepaalde int zit?
|
Code:
#include <stdlib.h> |
hoezo basic_string::npos?
|
da's een constante (die per implementatie van de c++ standaard kan verschillen) die gereturned wordt als find niks vindt. dus als het niet zo als dat find.6 niks vindt óf find.9, dan wordt die boolean variable true (als het goed is :p)
|
char * itoa ( int value, char * buffer, int radix );
het wordt dus opgeslagen in een char/char array. bij een string krijg je een error Code:
#include <iostream> over de regel, itoa(counter, stringbuffer[i], 10); |
je moet het dus ook tijdelijk opslaan in een char array, niet in een stringbuffer.
daarna maak je er een string van met de char* constructor, waarin je vervolgens kunt gaan find-en. |
Citaat:
|
als je een char array hebt die char_array heet, maak je als volgt er een string string_uit_char_array van.
Code:
std::string string_uit_char_array(char_array); |
|
keej, ik heb effe zitten puzzelen, en dit heb ik nu
Code:
#include <iostream> met syntax highlithing http://www.rafb.net/paste/results/v2946342.html maar dit werkt niet..... :( terwijl het andersom wel werkt, als ik string_uit_buffer.find("6",0) == string::npos) verander in string_uit_buffer.find("6",0) != string::npos) Dan krijg ik juist alle getallen MET een 6 of 9 |
owk, never mind, heb het al opgelost :D
[edit] ow ik ben trouwens Dr HenDre [/edit] |
Citaat:
|
ik gebruik er zelf altijd een zelfgemaakte functie voor maar ik weet niet of het de snelste manier is.. hij werkt iig erg goed!
Code:
#define SIX 6 |
Citaat:
verder houd ik niet zo van het wiel opnieuw uitvinden, zoals jouw code bv doet :p |
Citaat:
|
uh, performance beter? doubtful. meestgebruikte implementaties van c++ standard library (gcc, bcc, vc) zijn erg efficiënt, dus waarom die niet gewoon gebruiken :|
poeplelijke assert erin, defines staan 5 regels erboven :p talentje :evil: |
waarom een lelijke assert? :confused:
|
en ja hoor, de STL van vc is érg efficient ;)
|
Citaat:
Citaat:
|
Citaat:
|
Citaat:
|
Citaat:
|
:confused:
waar heb je het in godsnaam over kerel? khad dr hendre al geholpen via msn :| |
hmm ok ik zie het al :D ik dacht dat hendre een geintje maakte.. in de topic staat "Zit er een 6 of 9 in een int" en ik dacht dus dat hij bedoelde hoe je kan kijken of een int een 6 of een 9 is :) nu begrijp ik het.. hij wil weten of het teken '6' of '9' in de string representatie van een int zit :D
|
Ik heb het dankzij Screaming Slave opgelost. Dit is mijn oplossing:
Code:
#include <iostream> |
Citaat:
|
yup :bloos:
|
kan het hele opzoeken niet sneller dmv een bitand?
Code:
int zoekgetal = 9, maal = 10, getal = 9; [edit] idd... ik heb het fout :o [/edit] |
Citaat:
Maar ja.....je werkt met integers. Dan kan je net zo goed gewoon effe 2 if statement maken die kijkt of het tussen de 5 en de 7 ligt, of tussen de 8 en de 10. |
Citaat:
9 kan 90 kan ook 900 kan ook maar 198 werkt niet. en er zit toch echt een 9 in... |
Citaat:
|
Citaat:
binair, of liever hexadecimaal, gaat tot 16 decimaal. Dan zou je bij 19 decimaal al in de problemen komen. Code:
9d = 9h = 0000 1001b |
voor datgene dat hendre wil maken, maakt het niet uit of de uitvoering nou 1 of 2 milliseconden duurt... en eerst converteren naar een string is wel veel leesbaarder
ik begrijp alleen niet zo waarom hendre's probleem zo ingewikkeld moet worden opgelost... moet het perse met dit algoritme voor school ofzo? anders kan je toch veel beter dit doen als je de eerste 200 getallen deelbaar door 78 wil weergeven? Code:
#include <iostream> |
tafelvan78.cpp :D
|
ja de eerste 200 getallen die deelbaar zijn door 78 is geen probleem, maar het probleem ligt meer in dat de getallen géén 6 óf 9 mogen bevatten vanwege een engels grapje ;)
Why is the 6 afraid of the 7?
Spoiler
Ik heb nu trouwens iets uitdagenders. Dit is de opdr8 waar ik al een 2 dagen mee aan het puzzelen ben. De Romeinen hadden een spelletje met muntjes, te weten sestertii. Er staan een heleboel lege potjes op een rij en de eerste Romein die langskomt gooit in elk potje een sestertius. Daarna komt de tweede Romein die haalt uit alle even potjes het muntje. De potjes zijn genummerd1 van 1 t/m n, waarbij n het laatste potje is. De nummering is opeenvolgend. Dan komt de 3e romein en gaat alle potjes die een veelvoud van drie zijn na, en als er een muntje inligt dan pakt hij dat, en als er geen muntje inligt dan doet hij er een in. Dus hij pakt het muntje uit potje 3 en doet dat in potje 6. Daarna pakt hij het muntje uit potje 9 en doet dat in potje 12, enzovoort. De vierde Romein doet hetzelfde voor alle potjes met als nummer een viervoud. Nadat er n Romeinen zijn geweest, in hoeveel potjes ligt er dan een muntje? Kan je ook een rij maken van X-en en O-en waarbij een X staat voor wel een munt, en O voor geen munt? Het probleem is hoe maak ik een 2de array met een dynamische groote. Een gewone array lukt wel, maar bij 2d krijg ik een error van mn compiler. voor een gewone array met dynamische grootte doe ik Code:
int * dArray; Code:
int * dArray; |
Citaat:
Je kan trouwens malloc e.d. gebruiken voor dynamische geheugen toewijzing. |
Citaat:
En malloc, hmm het is nog een C-style (tog) maar ik zal er effe naar kijken, maar geheugentoewijzen en pointers enzo dat is niet mn sterkste punt... ;) Ok, ik heb effe malloc bekeken. Stel ik wil een 2d array maken met malloc. Werkt dat dan ong zo Code:
int * dArray; |
Citaat:
|
Citaat:
Trouwens, hier kun je het programmatje dat ik net heb gemaakt nav jou verhaaltje van de Romeinen bekijken, geschreven in FoxPro. Als het goed is heb je niet de 7 MB aan dll's nodig die FoxPro zo graag wilt. Maar dat weet ik niet. Laat het even weten :) |
Citaat:
dll's heb je wel nodig (n) :( |
Citaat:
http://www.divinity-universe.nl/downloads/romein.prg Nu heb ik wel jouw huiswerk lopen maken.. maarja. Voor één keer maakt mij dat niet zoveel uit ;) |
Citaat:
|
Citaat:
Voor een bestandje van 25Kb heb je 7 MB aan dll's nodig? Jemig, wat slecht! *zoekt in help van FoxPro* |
Citaat:
|
ieuw, malloc, wat ontzettend niet-c++ van jullie :nono:
|
Citaat:
In de help staat dat elke exe 2 support dll's nodig heeft, te weten Vfp8r.dll en Vfp8renu.dll. En laten deze 2 samen nu toevallig 5.19 MB zijn. (ok, 7 MB was wat overdreven...) |
Citaat:
|
Citaat:
|
Citaat:
Code:
int *dArray; |
tuurlijk werkt dat niet.
int * dArray kan niet gebruikt worden als 2-dimensionale array, afaik. |
Alle tijden zijn GMT +1. Het is nu 06:17. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.