verander één karakter in een char array c++

Status
Niet open voor verdere reacties.

sSharQ

Gebruiker
Lid geworden
19 jul 2013
Berichten
21
hallo iedereen,

Ik ben een programma aan het maken dat een code moet coderen uit een char array in c++.
Maar ik weet niet hoe je 1 karakter en een char array kan veranderen en dat de anderen hetzelfde blijven.

Code:
char code[] = "\x11\x22\x33\x44" \\voorbeeld

Hier wil ik dus dan ik bijvoorbeeld het eerste karakter \x11 kan veranderen in \x55 dus dat het dit wordt:

Code:
char code[] = "\x55\x22\x33\x44"

Kan iemand bij hiermee helpen?

alvast bedankt.
 
Zelf kan ik geen C of C++. Maar als jij array zeg, zeg ik indexes.
Misschien dat je de chars kan benaderen via een index?
 
Om de eerste waarde in een array te wijzigen moet je inderdaad gebruik maken van een index. In het voorbeeld dat je geeft bijvoorbeeld:

[cpp]
code[0] = '\x55'; // omdat het een char value is moet je gebruik maken van single quotes. Verder zijn arrays in C/C++ zero-based en beginnen dus bij 0
[/cpp]
 
(even een leerzaam momentje voor mij)

dus stel ik heb wat code

[cpp]
char code[] = "\x11\x22\x33\x44"
char karakter = code[0]
[/cpp]

dan zou karakter '\x11' moeten geven?
 
@michael, ja want \x11 is een hexadecimaal getal wat 1 karakter weergeeft. b.v. \x41 staat voor A.

@COD_nl, ik kan geen single quotes gebruiken, want dan kan ik niet '\x11\x22\x33\x44' maar dan moet ik '\x11', '\x22', .... en zo krijg ik ze niet binnen :(

maar ik heb al iets anders bedacht ik zet ze om naar een interger en dan verander ik dat nummer en dan verander ik het weer naar een karakter.

hier is de code die ik nu heb:
[CPP]#include <iostream>

using namespace std;

char hello[] = "\x41\x42\x43\x44\x45"; //is gelijk aan ABCDE
char q[5];

int numbers[5];
int numbers2[5];

int main ()
{
cout << hello; //de array hello wordt geprint op het beeldscherm een is gelijk aan ABCDE
cout << "\n";

for(int n=0; n<5; n++){ //hier wordt het gecodeert door eerst de karakters naar een integer te zetten en er dan 12 afhalen
numbers[n] = hello[n]; //dit doe ik later natuurlijk vantevoren
numbers[n] -= 12;
}


for(int n=0; n<5; n++){ //hier wordt het in een andere array gezet en dan in die nieuwe array er weer 12 bijgedaan
numbers2[n] = numbers[n];
numbers2[n] += 12;
}


for(int n=0; n<5; n++){ //hier worden de integers weer omgezet in karakters
q[n] = (char)numbers2[n];
}

cout << q; //de array q wordt geprint op het beeldscherm een is ook gelijk aan ABCDE

cout << "\n";
system("pause");
return 0;
}[/CPP]


maar bedankt voor de hulp iedereen!,
jan
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan