Interpolacja łańcuchów znaków

C++:
Interpolacja łańcuchów znaków

How to (Jak to zrobić):

Od C++20 mamy dostępne formatowanie stylu {fmt}. Sprawdź:

#include <iostream>
#include <format>

int main() {
    std::string name = "Marek";
    int age = 30;
    
    std::string greeting = std::format("Cześć, {}! Masz {} lat.", name, age);
    std::cout << greeting << std::endl;
    
    return 0;
}

Wynik:

Cześć, Marek! Masz 30 lat.

Deep Dive (Dogłębna analiza)

Interpolacja stringów znana jest z wielu języków, takich jak Python czy JavaScript. W C++ analogiczną funkcjonalność powszechnie osiągano przez printf lub strumienie (np. std::ostringstream). Formatowanie stylu {fmt} (od C++20) jest inspirowane biblioteką fmt i Pythonem, oferuje typowane bezpieczeństwo i jest wygodniejsze w użyciu niż starsze metody.

Alternatywy:

  • sprintf / snprintf: starsze funkcje C-style, które mogą prowadzić do błędów i wycieków pamięci.
  • Strumienie I/O (std::stringstream): szerokie możliwości ale skomplikowane i często mniej wydajne.
  • Biblioteka fmt przed C++20: zewnętrzna biblioteka, która wprowadziła wygodne formatowanie.

Implementacja detale std::format to bezpieczna i elastyczna opcja formatowania stringów, która pozwala na precyzyjne sterowanie formatem wyjściowym, włączając w to szerokość pola, precyzję i wiele innych.

See Also (Zobacz też)