Jede Programmiersprache, die Funktionen verwendet, verfügt über Code, der einfacher, modularer und beim Debuggen einfacher zu ändern ist. Funktionen sind ein sehr nützlicher Teil des modularen Codes. Funktionen können Parameter akzeptieren und bestimmte Operationen mit ihnen ausführen. Wie andere primitive Datentypen können wir auch Objekttypen oder Arrays als Parameter übergeben. In diesem Artikel erfahren Sie, wie Sie Daten vom Typ String als Funktionsparameter in C++ übergeben.
C++ unterstützt stärkere String-Objekte, bei denen es sich tatsächlich um eine Klasse mit verschiedenen zugehörigen Memberfunktionen handelt. Die Übergabe eines String-Objekts als Argument ähnelt der Übergabe normaler primitiver Datentypen.
<return type> function_name ( string argument1, string argument2, … ) { // function body }
Im folgenden Beispiel sehen wir ein Programm, das überprüft, ob eine bestimmte Zeichenfolge ein Palindrom ist oder nicht. Es wird zwei Funktionen geben, eine wird die Zeichenfolge umkehren und eine andere prüft, ob die Zeichenfolge ein Palindrom ist oder nicht der Algorithmus und die entsprechende C++-Implementierung.
#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
Syntax
(Zeichenzeiger verwenden)
<return type> function_name ( char* <string variable>, … ) { // function body }
(Zeichenfeld verwenden)
<return type> function_name ( char <string variable>[], … ) { // function body }
Die chinesische Übersetzung von
Beispiel#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
Fazit
Das obige ist der detaillierte Inhalt vonC++-Programm zur Übergabe einer Zeichenfolge an eine Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!