String sebagai Stream Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc
Introduction
Kadang-kadang ada suatu bentuk operasi tertentu berada di dalam sebuah file. Misalnya operasi dasar matematika, beberapa common linux syntax (ls, mkdir test, chmod 755 *.*) dalam sebuah file. Kita butuh mengeksekusi operasi-operasi tersebut satu baris pada waktu yang bersamaan. Tampung sintak-sintak /operasi-operasi tersebut dalam sebuah string stream. Contoh : str = “2 + 5 ”, str =“ls mkdir”
String Streams
Sama halnya seperti file, string merupakan kumpulan dari dua buah character atau lebih. C++ menyediakan cara untuk menggabungkan I/O stream dengan string Beberapa kegunaan string stream adalah: - Menentukan error dalam input - Membaca salah satu dari dua tipe data - Mengubah nilai-nilai internal ke nilai representasi ekternalnya.
Input/output string stream class
stringstream menyediakan sebuah interface untuk memanipulasi string. Objek kelas ini mengatur secara internal sebuah pointer oleh objek stringbuf yang dapat diperoleh/dimodifikasi dengan memanggil member rdbuf. Objek streambuf ini mengontrol urutan karakter-karakter (string) yang dapat diperoleh/dimodifikasi dengan memanggil member str.
Public member
(constructor)
Construct an object and optionally initialize its content (constructor member)
rdbuf
Get/set the associated stringbuf object (public member function)
str
Get/set the associated string object (public member function)
Members inherited from istream Members inherited from ostream Member-member tersebut bisa di lihat pada link ini http://www.cplusplus.com/reference/iostream/stringstream/
String stream input - istringstream string stream mendukung semua kemampuan iostream. Disini kita hanya membutuhkan dua buah komponen tambahan. - Input string stream harus dideklarasikan istringstream. - Nilai string untuk membaca diatur oleh str(). q Berikut adalah contohnya:
Contoh 1 2 3 4 5 6 7 8 9
#include
#include <sstream> using namespace std; . . . int a, b; string s = "34 22"; istringstream ins; // Declare an input string stream. . . ins.str(s); // Specify string to read. ins >> a >> b; // Reads the integers from the string.
.
String stream output - ostringstream
Sama seperti istringstream, kita hanya membutuhkan dua buah komponen tambahan. -
Output string streams harus dideklarasikan ostringstream. Nilai string diperoleh dari stream melalui str().
Berikut contoh potongan program yang mencetak nilai karakter dari akar pangkat dua dari sebuah string.
Contoh #include #include <sstream> using namespace std; . . . ostringstream outs; // Declare an output string stream. . . . outs << sqrt(2.0); // Convert value into a string. s = outs.str(); // Get the created string from the output stream.
String stream example
Contoh ini membaca baris (line) dengan sebuah bilangan integer, sebuah operator, dan sebuah bilangan integer yang lain. Contohnya: 25 * 3 atau 4 / 2 Kedua contoh diatas sangat mudah dibaca. Namun apa yang terjadi bila inputannya salah. Contohnya : 25 * 3 + 1 or atau 25 * Solusinya adalah baca setiap baris (line) dalam sebuah string, lalu baca dari string. Ini dapat mencegah error. Perhatikan contoh berikut!
Ctype di dalam C++ Terdapat dua buah kumpulan fungsi-fungsi. Pertama, fungsi untuk pengecekan Isalnum : cek jika karakter adalah alphanumeric (function) isalpha : cek jika karakter adalah alphabetic (function) iscntrl : cek jika karakter adalah a control character (function) isdigit : cek jika karakter adalah decimal digit (function) isgraph cek jika karakter memiliki graphical representation (function) islower cek jika karakter adalah lowercase letter (function) isprint cek jika karakter adalah printable (function) ispunct cek jika karakter adalah a punctuation character (function) isspace cek jika karakter adalah a white-space (function) isupper cek jika karakter adalah Huruf kapital uppercase letter (function) isxdigit cek jika karakter adalah hexadecimal digit (function)
Ctype continue…
Kedua, fungsi untuk mengkonversi karakter.
tolower : Menkonversi uppercase letter ke lowercase (function) toupper : Menkonversi lowercase letter ke uppercase (function)
Potongan Code ... char test[100]; cout<<"Please enter a sentence: "; gets(test); int i; for (i=0; test[i]!='\0'; i++) cout<
Potongan Code //converting the first letter to uppercase
test[0]=toupper(test[0]); //print the new sentence, using a loop
for (i=0; test[i]!='\0'; i++) cout<
for (i=0; test[i]!='\0'; i++) test[i]=tolower(test[i]); /* checking for the first alphabet, converting it to uppercase.once converted, stop the loop using [i]break[/i] */
for (i=0; test[i]!='\0'; i++) if (isalpha(test[i])) { test[i]=toupper(test[i]) break; }
References
http://www.fredosaurus.com/notes-cpp/strings/stringstream.html http://www.fredosaurus.com/notes-cpp/strings/stringstream-example.html http://www.cplusplus.com/reference/iostream/stringstream/str/ http://www.cplusplus.com/reference/iostream/ostringstream/str/ http://www.cplusplus.com/reference/iostream/istringstream/str/ http://www.cplusplus.com/reference/iostream/stringstream/