Przekazywanie tablicy do funkcji przez referencję

0

Witam,

Chcę przekazać do funkcji ciąg znaków przez referencję (odnośnik). Nigdy tego nie robiłem, jednak mam zadanie, w którym muszę to zrobić. w treści mam obostrzenie, iż muszę przekazać do funkcji test jako parametr char& do ciągu znaków. Czy mógłby mi ktoś pomóc? Bo nie wiem jak to zrobić.
Zrobiłem taki przykładowy kod, ale to nie działa.

#include <iostream>
using namespace std;

void test(char&);

int main() {
	char t[] = "test";
	fun(t);
	return 0;
}

void test(char& ref){
}

Zresztą nawet jeśli w mainie chcę zrobić:

char &oo = t;

to też wyrzuca mi błąd:

cannot convert parameter 1 from 'char [5]' to 'char &'

Będę wdzięczny za wszelkie wskazówki/pomoc.

zamiana znacznika <ort> na <code class="none"> - @furious programming

0

Możesz to zrobić tak, ale musisz sztywno definiować rozmiar łańcucha:

void fun(char (&lancuch)[5]) 

Ale nie lepiej użyć stringa i zrobić to znacznie prościej?

void fun(string& lancuch) 
0
void test(const char *str){ /* ... */ }
0

Dziękuję za wszelką pomoc. Już śpieszę z wyjaśnieniami. loominartz - string z chęcią bym użył, gdybym mógł, ale w zadaniu mam jasno określone, że ma to być typ char& - Funkcja test otrzyma jako parametr char&, więc niestety string odpada. Nie rozumiem stwierdzenia MoorfoxD, że "Inaczej jest napisane w jego zadaniu i inaczej on to rozumie." Nie mogę przekazywać do funkcji tablicy przez wskaźnik, tak jak to napisałeś, bo mam narzucony typ char&, czyli referencję...

1
#include <cstdio>

void fun(char &strRef){
	printf("%s", &strRef);
}

int main(){
	char *text = "Hello Babe";
	fun(*text);
}
0

Bardzo dziękuję za całą pomoc :)

0

Wtf? Co to za bezsensowne zadanie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1