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 .
String yaitu array dari karakter . string literal yaitu kata-kata yang dikelilingi oleh tanda kutip ganda .
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
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 .
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/