Heim > Artikel > Backend-Entwicklung > C++-Programm zur Übergabe einer Zeichenfolge an eine Funktion
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 }Syntax
(Zeichenfeld verwenden)
<return type> function_name ( char <string variable>[], … ) { // function body }Sehen wir uns das gleiche Beispiel der Palindromprüfung mit Zeichenarray-Übergabe an. Hier ändert die Funktion „reverse()“ das Array, daher müssen wir diese Zeichenfolge als Zeichenarray übergeben, nicht als Zeichenzeiger. Und isPalindrome() prüft nur ob die Zeichenfolge mit der umgekehrten Zeichenfolge übereinstimmt, sodass sie einen Zeichenzeiger oder ein Zeichenarray annehmen kann und der Effekt derselbe ist. Der Algorithmus ist ähnlich, sodass wir direkt in den Code eintreten.
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!