Array
String (Array of char)
Erick Paulus
Mata Kuliah : Algoritma dan Pemrograman
Program Studi S-1 Teknik Informatika
Pokok Bahasan
Sesi perkuliahan ini akan membahas topik-topik tentang :
• Array of character
• Tipe String
• Operasi string
String / Array of character
• C++ menyediakan dua jenis representasi string berikut :
• String karakter gaya C.
• Tipe kelas string diperkenalkan dengan Standar C++.
C-Style Character String
• Pada C tidak ada tipe variable elemen yang spesific untuk menyimpan
string. Untuk keperluan ini dapat digunakan array dengan tipe char,
dimana berisi elemen dengan tipe char.
• Contoh deklarasi:
• char nama [20];
• char nama[] = “Erick"; // Secara otomatis menjadi {‘E', ‘r’, i', ‘c', ‘k', '\0'}
• Perhatikan, karakter NULL (” atau ‘\0’) selalu disertakan diakhir string
untuk indikasi akhir dari string.
• Inisialisasi array dari char
• char mystring [] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’ };
• char mystring [] = “Hello”;
Berikut ini adalah presentasi memori dari string yang ditentukan di atas dalam
C/C++
Sebenarnya, tidak perlu menempatkan karakter null di akhir konstanta string.
Kompiler C++ secara otomatis menempatkan '\0' di akhir string ketika
menginisialisasi array.
Pemberian nilai pada string
1. Menggunakan fungsi strcpy.
• strcpy (string copy) mendefinisikan cstring (string.h) library dan dapat dipanggil dengan
cara :
• strcpy (string1, string2);
• isi dari string2 di-copy ke string1.
• string2 dapat berupa array, pointer, atau konstanta string.
• Contoh:
• char myName[20];
• strcpy (myName,”Asep Dayat”);
2. menggunakan cin, dengan metode getline :
• [Link](char buffer[],int length,char delimiter = ‘\n’);
Contoh:
• char mybuffer [100];
• cout << “What’s your name? “;
• [Link] (mybuffer,100);
3. Menggunakan cin >> string
• Ada keterbatasan hanya bisa satu kata
Konversi string ke tipe lainnya
• atoi: converts string to int type.
• atol: converts string to long type.
• atof: converts string to float type.
• Contoh :
main (){
char mybuffer [100];
float price;
int quantity;
cout << “Enter price: “;
[Link] (mybuffer,100);
price = atof (mybuffer);
cout << “Enter quantity: “;
[Link] (mybuffer,100);
quantity = atoi (mybuffer);
cout << “Total price: ” << price*quantity;
}
Fungsi untuk manipulasi string
No. Function & Purpose
1 strcpy(s1, s2);
Copies string s2 into string s1.
2 strcat(s1, s2);
Concatenates string s2 onto the end of string s1.
3 strlen(s1);
Returns the length of string s1.
4 strcmp(s1, s2);
Returns 0 if s1 and s2 are the same; less than 0 if s1<s2; greater than 0 if s1>s2.
5 strchr(s1, ch);
Returns a pointer to the first occurrence of character ch in string s1.
6 strstr(s1, s2);
Returns a pointer to the first occurrence of string s2 in string s1.
#include <iostream> strcpy( str3, str1) : Hello
#include <cstring> strcat( str1, str2): HelloWorld
using namespace std;
strlen(str1) : 10
int main () {
char str1[10] = "Hello";
char str2[10] = "World";
char str3[10];
int len ;
// copy str1 into str3
strcpy( str3, str1);
cout << "strcpy( str3, str1) : " << str3 << endl;
// concatenates str1 and str2
strcat( str1, str2);
cout << "strcat( str1, str2): " << str1 << endl;
// total lenghth of str1 after concatenation
len = strlen(str1);
cout << "strlen(str1) : " << len << endl;
return 0;
}
Class String dalam C++
• Pustaka C++ standar menyediakan tipe kelas string yang mendukung semua operasi yang
disebutkan sebelumnya, selain itu juga memiliki lebih banyak fungsionalitas
include <iostream>
• str3 : Hello
#include <string>
using namespace std; • str1 + str2 : HelloWorld
int main () {
• [Link]() : 10
string str1 = "Hello";
string str2 = "World";
string str3;
int len ;
// copy str1 into str3
str3 = str1;
cout << "str3 : " << str3 << endl;
// concatenates str1 and str2
str3 = str1 + str2;
cout << "str1 + str2 : " << str3 << endl;
// total length of str3 after concatenation
len = [Link]();
cout << "[Link]() : " << len << endl;
return 0;
}
Contoh : Input string dengan getline() → type char dan string
#include <iostream>
#include <string>
using namespace std;
main() {
string nama1;
char nama2[50], alamat[50];
cout << "Contoh baca dan tulis" << endl;
cout << "Ketik Nama anda: "; getline (cin, nama1); // string
cout << "Nama anda adalah : " << nama1 << endl;
cout << "Ketik Alamat anda: "; [Link] (alamat,50); //array
cout << "Nama anda adalah : " << alamat << endl
cout << "Ketik Nama anda lagi : "; cin >> nama2; //array
cout << "Nama anda adalah : " << nama2 << endl;
}
Terima kasih
Tenaga Pengajar :
• Erick Paulus, [Link].,
• Dr. Akmal, [Link], MT