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, botów: 0