Char array und char Zeiger
-
HI,
Ich habe da mal eine Frage:
Ich habe in einer Klasse eine Funktion die als Parameter einen char Zeiger erwartet. Kann der User jetzt eigentlich auch ein char array übergeben? Ich will in dieser Funktion den INhalt an einen Vector anfügen, bei einem char array kann ich ja einfach eine schleife durchlaufen aber wie mache ich es bei einem char Zeiger?
-
Am besten wäre es wohl, wenn du einen std::string bzw. eine Referenz auf ein String-Objekt übergibst.
Beispiel:
void bla(std::string &s) { s += "1gfhjuh"; } int main() { std::string foo("bla"); //Foo enthält "bla" bla(foo); //foo enthält "bla1gfhjuh" }
-
Du kannst an den char Zeiger auch ein char Array übergeben, du übergibst einfach die Adresse vom ersten Feld im Array:
Bsp:#include <iostream> using namespace std; void func(char *letters); int main() { char save[20]="Blaumilchkanal"; func(save); return 0; } void func(char *letters) { cout << letters << "\n"; for(int i=0;i<14;++i) { cout << letters[i] << "\n"; } }Und in dem char Zeiger kannst du auch einfach mit "Zeigername[x]" die einzelnen Buchstaben ansprechen. (Zeile 17-21)
MfG
Stromberg
-
#include <iostream> // std::cout, std::ostream #include <cstring> // std::strlen std::ostream& foo(std::ostream&, const char*); int main() { char arr_data[] = "C-String für meine Funktion (!)"; foo(std::cout, arr_data); } std::ostream& foo(std::ostream& out, const char* letters) { out << letters << std::endl; const std::size_t length(std::strlen(letters)); for (std::size_t i(0); i < length; ++i) out << letters[i] << std::endl; return out; }Die Funktionen für die C-Strings (char-Arrays mit Terminierungszeichen) befinden sich alle im Header <cstring> (in C <string.h>).