Menghitung String Masukan Dengan strlen() dan cin.gcount() – C++
Contoh Program Menghitung String Masukan Dengan strlen() dan cin.gcount() C++ |
Ada beberapa cara yang bisa dilakukan untuk menghitung jumlah karakter yang dimasukkan oleh user. Cara yang mungkin biasa Anda gunakan adalah dengan menggunakan perulangan for, Kurang lebih seperti ini jika menggunakan for :
jum_karakter = 0;
for(int i = 0; string[i]; i++)
jum_karakter++;
“Mulai dari index 0, Ulang selama string[i]
tidak bernilai NULL, lakukan increment/penambahan nilai pada varibel ‘jum_karakter’
selama kondisi bernilai benar, kemudian increment nilai index”.
*Tambahan
:
“Untuk
yang belum tau, perlu dicatat bahwa
setiap string pada C++ selalu diakhiri dengan NULL. Jika kita melakukan
input atau melakukan inisialisasi = “C++”.
Maka diakhir kata C++ akan ditambahkan karakter NULL (biasa disimbolkan dengan ‘\0’).
Seperti ini :
C
|
+
|
+
|
\0
|
Sebenarnya tidak ada masalah menggunakan perulangan for untuk menghitung jumlah karakter. Namun di sini C++ sudah menyiapkan fungsi yang lebih mudah untuk digunakan yaitu strlen() dan cin.gcount().
strlen() atau “string length” akan secara otomatis mengitung jumlah karakter yang disimpan dalam suatu variabel. Strlen bisa digunakan untuk menghitung jumlah karakter yang diinisialisasiakan pada awal deklarasi variabel maupun input dari keyboard. Sedangkan cin.gcount() hanya dikhususkan untuk membaca jumlah karakter yang di input dari standard input (keyboard).
Berikut kode program untuk menghitung
jumlah karakter :
/*
Menghitung panjang string masukan dengan for,
strlen() dan cin.gcount()
compiler : Microsoft Visual Studio 2012
*/
#include <iostream>
using namespace
std;
#include <string.h>
int main()
{
char
string[70]; //deklarasi
variabel
int
jum_karakter;
cout<<"Menghitung panjang string
inputan"<<endl;
cout<<"---------------------------------"<<endl;
cout<<"Masukkan String : ";
cin.getline(string, sizeof(string));
cout<<"\nJumlah String"<<endl;
//menghitung karakter dengan perulangan for
jum_karakter = 0;
for(int i = 0; string[i]; i++)
jum_karakter++;
cout<<"> dengan perulangan for = "<<jum_karakter<<" karakter"<<endl;
cout<<"> dengan cin.gcount() = "<<cin.gcount()-1<<" karakter"<<endl;
cout<<"> dengan strlen = "<<strlen(string)<<" karakter"<<endl;
cout<<endl;
system("pause");
return
EXIT_SUCCESS;
}
Output Program
Menghitung panjang string inputan
---------------------------------
Masukkan String : N.N. Blog (Tetaplah terhubung dan saling berbagi informasi)
Jumlah String
> dengan perulangan for = 59 karakter
> dengan cin.gcount() = 59 karakter
> dengan strlen = 59 karakter
Press any key to continue . . .
Catatan :
- Fungsi “cin.getline(string, sizeof(string));” digunakan untuk membaca string sebelum newline, termasuk spasi. (Tentang getline akan dibahas pada postingan selanjutnya)
- Untuk menggunakan fungsi strlen(), kita harus meyertakan file header “string.h”. Penulisan strlen : strlen(nama_variabel)
- “cin.gcount()” harus dikurangi 1. Hal ini perlu dilakukan karena fungsi cin.gcount() juga menghitung newline yang tidak kita perlukan.
- strlen() dapat menghitung jumlah karakter suatu variabel, sedangkan cin.gcount()hanya menghitung jumlah karakter terakhir yang dimasukkan melalui keyboard sebelum karakter newline.
Baca juga fungsi string C++ lainnya:
1. Membandingkan String dengan strcmp() dan strncmp()
2. strcat() untuk Menggabungkan String pada C++
3. [C++] Membalik String dengan strrev()
4. strlwr() - C++ : Konversi String ke Huruf Kecil
5. strupr() - C++ : Konversi String ke Huruf Kapital
6. Menghitung String Masukan Dengan strlen() dan cin.gcount() – C++
7. [C++] Menyalin String Berbeda dengan Menyalin Bilangan (strcpy)
8. C++ - Mencari String dengan strstr()
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih