Kezdőoldal » Számítástechnika » Programozás » Karakter sorozatok kiírása?

Karakter sorozatok kiírása?

Figyelt kérdés

Egy olyan programot szeretnék írni C++-ban ami karakter sorozatokat ír le 0-tól 9-ig, A-tól Z-ig.


Valahogy így gondoltam:

0

1

2

3

...

8

9

A

B

C

...

X

Y

Z

00

01

02

...

08

09

0A

0B

.......


Egészen addíg amíg el nem éri a 255db karakter hosszt.


Ebben tudna valaki segíteni??


Előre Köszönöm!!!



#programozás #linux #C++ #Ubuntu #karakter sorozat
2020. júl. 20. 11:34
1 2
 11/19 anonim ***** válasza:
51%
Performanica szemponjából is elég hulladék megoldás így stringet concatelni, de végülis itt mindegy, hogy mennyi idő alatt nem fog lefutni soha.
2020. júl. 20. 14:44
Hasznos számodra ez a válasz?
 12/19 anonim ***** válasza:
32%

Egy lehetséges megoldás. A printf-en kívül nem használ semmilyen külső függvényt.

(Bocsi, hogy csak így ömlesztve, valószínűleg ronda lesz, de működik.)

Ízlés szerint lehet alakítani, hogy ne írja ki a vezető nullákat, 'str' inicializálás finomítás, stb.


#include <stdio.h>


#define DIGITNUM 8

#define LOOPS 128


int increment_digit(char *ch) // return: carry

{

switch (*ch)

{

case '9': *ch = 'A'; return 0; break;

case 'Z': *ch = '0'; return 1; break;

default: ++(*ch); return 0;

}

}


void increment(char *str)

{

char *digit_ptr = str + DIGITNUM - 1; // last character

while (digit_ptr >= str && increment_digit(digit_ptr--)) ;

}


int main()

{

char str[DIGITNUM] = "00000000";

int i;

for (i=0; i<LOOPS; ++i)

{

printf("%5d: %s\n", i, str);

increment(str);

}

return 0;

}

2020. júl. 20. 15:09
Hasznos számodra ez a válasz?
 13/19 A kérdező kommentje:

Köszönöm a segítséget!

A 6. válaszban a link is nagyon jól működik és a 12. válaszban leírt program is jól működik.

És tudom, hogy NAGYON sok idő, mire legenerálja az összes variációt, de nem megyek el 255 karakterig, egy kicsit csinálja magának, aztán leállítom és az amit megcsinált, kiíratom egy txt fájlba.

2020. júl. 20. 15:31
 14/19 anonim ***** válasza:
Akkor még ki se kell iratni consolra. Elég, ha már alapból a fájlba iratod. :)
2020. júl. 20. 15:34
Hasznos számodra ez a válasz?
 15/19 anonim ***** válasza:
32%

#12 voltam. Annyi, hogy ez nem a 255 karaktert generálja, csak egy keveset, és csak az elv miatt. A DIGITNUM-ot kell 255-re állítani, a main() elején az str-nek 255 db nullát megadni (bár akkor ezt nem így csináltam volna, na mindegy), és a LOOPS pedig elvileg (36^255)-1 kellene legyen (nemtom milyen típusban fér el), de inkább a karaktersor "ZZZ..." állapotát egyszerűbb figyelni. Ja, és ez nem is annyira C++, inkább C.


(Kíváncsi lennék egy benchmark-ra, hogy a C++ vagy a C verzió fut-e gyorsabban. Tényleg nem tudom, csak kíváncsi vagyok. Drukkolnék a C-nek, de lehet, hogy a másik gyorsabb. :))

2020. júl. 20. 15:51
Hasznos számodra ez a válasz?
 16/19 anonim ***** válasza:
Valakiknek nagyon nem jön be a C. Mi a gond? :)))
2020. júl. 20. 16:30
Hasznos számodra ez a válasz?
 17/19 anonim ***** válasza:

"NAGYON sok idő, mire legenerálja az összes variációt"

Nem az a lényeg, hanem hogy Isten tárhelye sem lenne elég egy ilyen fájlhoz.

2020. júl. 20. 16:32
Hasznos számodra ez a válasz?
 18/19 anonim ***** válasza:

"Valakiknek nagyon nem jön be a C. Mi a gond? :)))"


Ne foglalkozz. Ebbe a kategóriába megy a lepontozás olyan emberektől akik még nem is szólnak hozzá. Ha ez jó érzéssel tölti el őket, csinálják.

2020. júl. 20. 16:36
Hasznos számodra ez a válasz?
 19/19 anonim ***** válasza:
Na, akkor már csak azt kell megoldani, hogy megpróbáljon az összessel bejelentkezni fészbúkra :)
2020. júl. 26. 15:43
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!