Sprintf ile string'i 2 karaktere bölme

Bowman

Aktif Üye
Katılım
7 Ekim 2022
Mesajlar
129
Elimde string str = "68656E7279" şeklinde bir string ifade var. Ben bunu sprintf kullanarak bir bufferın içine [68,65,6E,72,79] şeklinde ikili ifadelere ayırarak yazmak istiyorum.

Kod:
string str = "68656E7279";

uint8_t buff[10];

int len = str.length();
    
for(int i = 0; i < len; i++)
{
    sprintf(&buff[i],"%02C",str[i]);
}

Şöyle bir kod denedim. Fakat çıktıda istediğimi elde edemiyorum. Nasıl yapabilirim ? Aldığım çıktı şu şekilde. Çıktıda ASCII tablosunda sıfırdan başlayarak 10 karakter elde ediyorum.

Kod:
 0 1 2 3 4 5 6 7 8 9
 
Format string %02X yapman lazım.
 
Her bir karakterin hex karşılığını mı yazdırmak istiyorsun yoksa string'i ikişer ikişer mi yazdırmak istiyorsun?
 
Tek tek kopyalarsin karakterleri, her iki karakterde de araya virgül koyarsın

Kod:
#include <string>

static std::string str = "68656E7279";

static char buff[100];

int main()
{
    unsigned int j = 0;

    buff[j++] = '[';

    for (unsigned int i = 0; i < str.length(); ++i)
    {
        if ((i > 0) && ((i % 2) == 0))
        {
            buff[j++] = ',';
        }

        buff[j++] = str[i];
    }

    buff[j++] = ']';
    buff[j++] = '\0';

    printf("buff = %s\n", buff);
}

Bunu çalıştırınca şöyle birşey çıkıyor:

Kod:
[ta@bonsai ~]$ g++ -Wall a.cpp
[ta@bonsai ~]$ ./a.out
buff = [68,65,6E,72,79]
[ta@bonsai ~]$
 

Forum istatistikleri

Konular
7,722
Mesajlar
128,512
Üyeler
3,118
Son üye
konce

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top