Rumah > Artikel > pembangunan bahagian belakang > Program C++ untuk menghantar rentetan kepada berfungsi
Sebarang bahasa pengaturcaraan yang menggunakan fungsi mempunyai kod yang lebih ringkas, lebih modular dan lebih mudah untuk ditukar semasa menyahpepijat. Fungsi adalah bahagian yang sangat bermanfaat dalam kod modular. Fungsi boleh menerima parameter dan melaksanakan operasi tertentu padanya. Seperti jenis data primitif lain, kita juga boleh menghantar jenis objek atau tatasusunan sebagai parameter. Dalam artikel ini, kita akan melihat cara menghantar data jenis rentetan sebagai parameter fungsi dalam C++.
C++ menyokong objek rentetan yang lebih kuat yang sebenarnya merupakan kelas dengan fungsi ahli yang berbeza yang dikaitkan dengannya. Objek rentetan yang dihantar sebagai hujah adalah serupa dengan penghantaran jenis data primitif biasa
Sintaks<return type> function_name ( string argument1, string argument2, … ) { // function body }
Algoritma
#include <iostream> #include <sstream> using namespace std; string reverse( string s ) { char temp; int n = s.length(); for( int i = 0; i < n / 2; i++ ) { temp = s[i]; s[i] = s[ n - i - 1 ]; s[ n - i - 1 ] = temp; } return s; } string isPalindrome( string s ) { string revS = reverse( s ); if( s == revS ) { return "True"; } else { return "False"; } } int main() { cout << "Is "racecar" a palindrome? " << isPalindrome( "racecar" ) << endl; cout << "Is "abcdef" a palindrome? " << isPalindrome( "abcdef" ) << endl; cout << "Is "madam" a palindrome? " << isPalindrome( "madam" ) << endl; cout << "Is "sir" a palindrome? " << isPalindrome( "sir" ) << endl; }
Is "racecar" a palindrome? True Is "abcdef" a palindrome? False Is "madam" a palindrome? True Is "sir" a palindrome? False
Sintaks
(Gunakan penunjuk aksara)
<return type> function_name ( char* <string variable>, … ) { // function body }Sintaks
(Gunakan susunan aksara)
<return type> function_name ( char <string variable>[], … ) { // function body }Mari kita lihat contoh semakan palindrom yang sama dengan hantaran tatasusunan aksara Di sini fungsi reverse() akan mengubah suai tatasusunan, jadi kita mesti menghantar rentetan ini sebagai tatasusunan aksara, bukan penunjuk aksara Dan isPalindrome() hanya akan menyemak sama ada rentetan itu sama dengan rentetan terbalik, jadi ia boleh mengambil penunjuk aksara atau tatasusunan aksara, dan kesannya akan sama Algoritmanya serupa jadi kami terus memasukkan kod.
Terjemahan bahasa Cina bagi
Contoh#include <iostream> #include <cstring> #include <cstdlib> using namespace std; void reverse( char s[] ) { char temp; int n = strlen( s ); for( int i = 0; i < n / 2; i++ ) { temp = s[i]; s[i] = s[ n - i - 1 ]; s[ n - i - 1 ] = temp; } } string isPalindrome( char* s ) { char* sRev = (char*) malloc( strlen(s) ); strcpy( sRev, s ); reverse( sRev ); if( strcmp( sRev, s ) == 0 ) { return "True"; } else { return "False"; } } int main() { string s = "racecar"; cout << "Is "racecar" a palindrome? " << isPalindrome( const_cast<char*> (s.c_str()) ) << endl; s = "abcdef"; cout << "Is "abcdef" a palindrome? " << isPalindrome( const_cast<char*> (s.c_str()) ) << endl; s = "madam"; cout << "Is "madam" a palindrome? " << isPalindrome( const_cast<char*> (s.c_str()) ) << endl; s = "sir"; cout << "Is "sir" a palindrome? " << isPalindrome( const_cast<char*> (s.c_str()) ) << endl; }
Is "racecar" a palindrome? True Is "abcdef" a palindrome? False Is "madam" a palindrome? True Is "sir" a palindrome? False
Kesimpulan
Atas ialah kandungan terperinci Program C++ untuk menghantar rentetan kepada berfungsi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!