Mengenal String Pada Pemrograman C++

string
Dalam C ++ ada dua jenis string , string C - gaya , dan ++ C - string gaya . Pelajaran ini akan membahas string C - gaya . string C - gaya yang benar-benar array , tetapi ada beberapa fungsi yang berbeda yang dipakai untuk string , menyerupai menambahkan string , menemukan panjang string , dan juga menyidik untuk melihat apakah string pertandingan . Definisi string akan menjadi apa pun yang berisi lebih dari satu karakter dirangkai . Misalnya , " Ini " yaitu string . Namun , karakter tunggal tidak akan string , meskipun mereka sanggup dipakai sebagai string .



Baca Juga

String yaitu array dari karakter . string literal yaitu kata-kata yang dikelilingi oleh tanda kutip ganda .

" Ini yaitu string statis "

Untuk menyatakan string 49 aksara , Anda akan ingin menyampaikan :

char string[50];

Ini akan mendeklarasikan string dengan panjang 50 karakter . Jangan lupa bahwa array dimulai dari nol , tidak 1 untuk nomor indeks . Selain itu , string diakhiri dengan karakter null, secara harfiah ' \ 0 ' karakter . Namun , ingatlah bahwa akan ada karakter suplemen pada simpulan pada string . Hal ini menyerupai periode di simpulan kalimat, tidak dihitung sebagai surat , tetapi masih membutuhkan ruang . Secara teknis , dalam array lima puluh arang Anda hanya sanggup menahan 49 aksara dan satu karakter null pada simpulan untuk mengakhiri string .


PERHATIAN: char * arry ; Bisa juga dipakai sebagai string . Jika Anda telah membaca tutorial wacana pointer , Anda sanggup melaksanakan sesuatu menyerupai :

arry = new char[256];

yang memungkinkan Anda untuk mengakses arry hanya seakan-akan itu sebuah array . Perlu diingat bahwa untuk memakai menghapus Anda harus menempatkan [ ] antara delete dan arry untuk menceritakannya untuk membebaskan semua 256 byte memori yang dialokasikan .

delete [] arry.

String mempunyai kegunaan untuk memegang semua jenis masukan yang panjang . Jika Anda ingin pengguna untuk memasukkan atau namanya , Anda harus memakai string . Menggunakan cin >> masukan string bekerja , tetapi akan mengakhiri string sehabis membaca ruang pertama . Cara terbaik untuk menangani situasi ini yaitu dengan memakai fungsi cin.getline . Secara teknis cin yaitu kelas ( hewan menyerupai dengan struktur ) , dan Anda menelepon salah satu fungsi anggotanya . Yang paling penting yaitu untuk memahami bagaimana memakai fungsi namun.


Prototipe untuk fungsi yaitu:

istream& getline(char *buffer, int length, char terminal_char);

Char * buffer yaitu pointer ke elemen pertama dari array karakter, sehingga benar-benar sanggup dipakai untuk mengakses array . Panjang int hanya berapa usang string menjadi masukan sanggup di maksimumnya ( seberapa besar array ) . Char terminal_char berarti bahwa string akan berakhir jikalau input pengguna apa karakter yang . Perlu diingat bahwa itu akan membuang apa pun karakter terminal .

Hal ini dimungkinkan untuk menciptakan panggilan fungsi cin.getline ( arry , 50 ) ; tanpa karakter terminal . Perhatikan bahwa ' \ n ' yaitu cara untuk benar-benar memberitahu compiler yang Anda maksud baris gres , yaitu seseorang menekan tombol enter.


Misalnya :

#include <iostream>

using namespace std;

int main()
{
  char string[256];                               // A nice long string

  cout<<"Please enter a long string: ";
  cin.getline ( string, 256, '\n' );              // Input goes into string
  cout<<"Your long string was: "<< string <<endl;
  cin.get();

}

ingat bahwa Anda benar-benar melewati alamat dari array saat Anda melewati tali alasannya yaitu array tidak memerlukan operator alamat ( & ) yang akan dipakai untuk melewatkan alamat mereka . Selain itu , Anda sanggup menciptakan ' \ n ' karakter yang Anda inginkan ( pastikan untuk menyertakan dengan tanda kutip tunggal untuk menginformasikan compiler status karakter ) untuk mempunyai getline yang berakhir pada karakter itu.


cstring yaitu file header yang berisi banyak fungsi untuk memanipulasi string . Salah satunya yaitu fungsi perbandingan string .

int strcmp ( const char *s1, const char *s2 );



strcmp akan mendapatkan dua string . Itu akan kembali integer . bilangan lingkaran ini akan berupa

Negatif jikalau s1 kurang dari s2 .
Nol jikalau s1 dan s2 yaitu sama .
Positif jikalau s1 lebih besar dari s2 .


Strcmp yaitu masalah sensitif . Strcmp juga melewati alamat dari array karakter untuk fungsi untuk memungkinkan untuk diakses .

char *strcat ( char *dest, const char *src );

strcat yaitu akronim tali concatenate , yang berarti untuk menambah karenanya , atau menambahkan . Ia menambahkan string kedua string pertama . Ia mengembalikan pointer ke string bersambung . Hati-hati fungsi ini , diasumsikan bahwa dest cukup besar untuk menampung seluruh isi src serta isinya sendiri .

char *strcpy ( char *dest, const char *src );

strcpy yaitu akronim copy string, yang berarti salinan seluruh isi src ke dest . Isi dest sehabis strcpy akan persis sama dengan src sehingga strcmp ( dest , src ) akan kembali 0 . size_t strlen ( const char *s ); strlen akan mengembalikan panjang string , minus karakter terminating ( ' \ 0 ' ) . size_t yaitu tidak perlu khawatir . Hanya memperlakukannya sebagai integer yang tidak sanggup negatif , yang itu . Berikut yaitu aktivitas kecil memakai banyak fungsi yang dijelaskan sebelumnya : #include <iostream> //For cout #include <cstring> //For the string functions using namespace std; int main() { char name[50]; char lastname[50]; char fullname[100]; // Big enough to hold both name and lastname cout<<"Please enter your name: "; cin.getline ( name, 50 ); if ( strcmp ( name, "Julienne" ) == 0 ) // Equal strings cout<<"That's my name too.\n"; else // Not equal cout<<"That's not my name.\n"; // Find the length of your name cout<<"Your name is "<< strlen ( name ) <<" letters long\n"; cout<<"Enter your last name: "; cin.getline ( lastname, 50 ); fullname[0] = '\0'; // strcat searches for '\0' to cat after strcat ( fullname, name ); // Copy name into full name strcat ( fullname, " " ); // We want to separate the names by a space strcat ( fullname, lastname ); // Copy lastname onto the end of fullname cout<<"Your full name is "<< fullname <<"\n"; cin.get(); } String fungsi di atas semua bergantung pada keberadaan null terminator pada simpulan string . Hal ini tidak selalu taruhan yang kondusif . Selain itu , beberapa dari mereka , terasa strcat , bergantung pada kenyataan bahwa string tujuan sanggup menahan seluruh string yang ditambahkan ke simpulan . Meskipun mungkin tampak menyerupai Anda tidak akan pernah menciptakan semacam kesalahan , secara historis , duduk masalah menurut sengaja menulis off simpulan array dalam fungsi menyerupai strcat , telah menjadi duduk masalah besar . Untungnya , dalam budi yang tak terbatas mereka , para perancang C telah menyertakan fungsi dirancang untuk membantu Anda menghindari duduk masalah ini . Mirip dengan cara yang fgets mengambil jumlah maksimum karakter yang masuk ke dalam buffer , ada fungsi string yang mengambil argumen suplemen untuk menyampaikan panjang buffer tujuan . Misalnya , fungsi strcpy mempunyai fungsi strncpy analog char *strncpy ( char *dest, const char *src, size_t len ); yang hanya akan menyalin byte len dari src ke dest ( len harus kurang dari ukuran dest atau menulis masih sanggup melampaui batas-batas array ) . Sayangnya , strncpy sanggup menyebabkan satu duduk masalah picik : itu tidak menjamin bahwa dest akan mempunyai null terminator menempel padanya ( ini mungkin terjadi jikalau src string yang lebih panjang dari dest) . Anda sanggup menghindari duduk masalah ini dengan memakai strlen untuk mendapatkan panjang src dan pastikan itu akan cocok di dest . Tentu saja , jikalau Anda akan melaksanakan itu , maka Anda mungkin tidak perlu strncpy di kawasan pertama , kan? Salah. Sekarang memaksa Anda untuk memperhatikan duduk masalah ini , yang merupakan bab besar dari pertempuran .


ok mungkin segitu dulu pembahasan dari saya , selamat berguru dan selamat biar sukses


Sumber http://www.virtualofworld.com/

Artikel Terkait

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel