Tam Sürümünü Görmek İçin : stringin harflerini unsigned char a cevirme(c++)
Flagrant
05/04/2007, 20:47
slmlar,
cok basit gibi gorunuyor ama yapamadim.
bir fonksiyonum var;
void foksiyon(string mesaj)
{
unsigned char temp;
...
}
yukaridaki satirda temp'i mesaj stringinin ilk harfi yapmak istiyorum. Veya bir char arrayim olsun icinde mesaj stringi olan. Veya bir char pointerim olsun ilk basta birinci harfe bakan sonra arttirarak diger harflere ulasayim. Ama yeterki harflere char olarak ulasayim..
acehreli
05/04/2007, 21:19
std::string iki degisik erisim sunar: erisicilerle (iterator) ve dizi erisim isleciyle ([]). Su program bunlarin ikisini de gosteriyor:
#include <iostream>
#include <string>
using namespace std;
void erisiciyle(string & sozcuk)
{
cout << "\nerisiciyle\n";
for (string::iterator erisici = sozcuk.begin();
erisici != sozcuk.end();
++erisici)
{
unsigned char karakter = *erisici;
cout << karakter << '\n';
}
}
void parantezlerle(string & sozcuk)
{
cout << "\nparantezlerle\n";
const string::size_type uzunluk = sozcuk.length();
for (string::size_type i = 0;
i != uzunluk;
++i)
{
unsigned char karakter = sozcuk[i];
cout << karakter << '\n';
}
}
int main()
{
cout << "Bir sozcuk girin: ";
string sozcuk;
cin >> sozcuk;
erisiciyle(sozcuk);
parantezlerle(sozcuk);
}
Bunlardan baska, string::at islevi de [] isleci gibidir, ama bir farkla: [] isleci ile string'in gecersiz bir ogesine erisirsek, bu tanimsiz davranistir; at() isleviyle erisirsek, bir hata atilir (exception). Yani ikisi de hatalidir ama hatanin sonucunda ne olacagi [] islecinde belirsizdir, at() islevinde belirlidir (hata atilir).
Ali
c_str() ile yapabilirsin.
Forum Yazılımı : vBulletin v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.