fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. template <typename... Args>
  5. bool CompareCFICode(const std::string& CFICode, const Args&... cfiPatterns) {
  6. bool result = true;
  7.  
  8. auto comparePattern = [&](const std::string& cfiPattern) {
  9. if (CFICode.length() != cfiPattern.length()) {
  10. result = false;
  11. return;
  12. }
  13.  
  14. for (size_t i = 0; i < CFICode.length(); ++i) {
  15. if (CFICode[i] != cfiPattern[i] && cfiPattern[i] != '#') {
  16. result = false;
  17. return;
  18. }
  19. }
  20. };
  21.  
  22. // Call comparePattern for each CFI pattern
  23. (comparePattern(cfiPatterns), ...);
  24.  
  25. return result;
  26. }
  27.  
  28.  
  29. int main() {
  30. // Esempio di utilizzo della funzione
  31. std::cout << std::boolalpha; // Per stampare "true" o "false" invece di 1 o 0
  32. std::cout << CompareCFICode("FXIXXX","F#I###") << std::endl; // Output: true
  33. std::cout << CompareCFICode("FXIXXX","F#S###") << std::endl; // Output: false
  34. std::cout << CompareCFICode("FXIXXX","O##S##") << std::endl; // Output: false
  35. std::cout << CompareCFICode("FXIXXX","O##S##") << std::endl; // Output: false
  36.  
  37.  
  38. std::cout << CompareCFICode("OXXIXX","F#I###") << std::endl; // Output: false
  39. std::cout << CompareCFICode("OXXIXX","F#S###") << std::endl; // Output: falsw
  40. std::cout << CompareCFICode("OXXIXX","O##S##") << std::endl; // Output: false
  41. std::cout << CompareCFICode("OXXIXX","O##S##") << std::endl; // Output: false
  42. std::cout << CompareCFICode("OXXIXX","O##I##") << std::endl; // Output: true
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 5288KB
stdin
Standard input is empty
stdout
true
false
false
false
false
false
false
false
true