fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdio>
  4.  
  5. int main()
  6. {
  7. std::string input[] = { "1.0.7", "1.0.", "1.0", "1.", "1" };
  8.  
  9. for (size_t i = 0; i < sizeof(input)/sizeof(input[0]); i++)
  10. {
  11. std::cout << input[i] << ": ";
  12.  
  13. // Init to zero.
  14. int parts[3] = { 0 };
  15.  
  16. if (std::sscanf(input[i].c_str(),
  17. "%d.%d.%d",
  18. &parts[0],
  19. &parts[1],
  20. &parts[2]) >= 2)
  21. {
  22. // OK, the string contained at least two parts.
  23.  
  24. std::cout << parts[0]
  25. << ","
  26. << parts[1]
  27. << ","
  28. << parts[2]
  29. << "\n";
  30. }
  31. else
  32. {
  33. std::cout << "bad format\n";
  34. }
  35. }
  36. return 0;
  37. }
  38.  
Success #stdin #stdout 0.01s 2812KB
stdin
Standard input is empty
stdout
1.0.7: 1,0,7
1.0.: 1,0,0
1.0: 1,0,0
1.: bad format
1: bad format