Wyrażenie Lambda

0

. Napisz funkcję, która przyjmuje napis w stylu C (tablicę znaków) oraz funkcję lambda. Funkcja powinna wykonać funkcję lambda dla każdego znaku w opisie (zakładamy, że funkcja lambda może zmienić przekazany napis) i zwrócić nowy napis.

#include <iostream>
#include <string>

using namespace std;

void title(const char *napis)
{	
	int licznik = 0;
	string nowy = napis;
	for(int i=0; i<nowy.length(); i++)
	{
	if(napis[i] =='a' || (napis[i] =='e') || (napis[i] =='o')||(napis[i] =='ó')||(napis[i] =='u')||(napis[i] =='i')||(napis[i] =='y') )
		{
			licznik = licznik+1;
		}
	}
	cout<<"samoglosek jest: "<<licznik;
	
}

auto lambda = [](char *napis)
{

};
int main()
{
	 const  char *tekst="Microsoft";

}



** Trochę się pogubiłem ,co mogę dalej zrobić z lambdą ?

2

Przykładowo:

template<typename T>
void title(char *napis, T fn) {
    while (*napis) *napis = fn(*napis), ++napis;
}

int main()
{
    char text[] = "abcdefgh";
    title(text, [](char c) -> char { return toupper(c); });
    std::cout << text << '\n';
    return 0;
}

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