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
 
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 ~]$
 

Çevrimiçi personel

Forum istatistikleri

Konular
7,921
Mesajlar
130,947
Üyeler
3,173
Son üye
apnr

Son kaynaklar

Son profil mesajları

Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
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ı ?
az bilgili çok meraklı
Back
Top