fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <cctype>
  4. using namespace std;
  5.  
  6. int main() {
  7. for (string str ; getline(cin, str) ; ) {
  8. bool found = false;
  9. size_t pos = 0;
  10. while (!found && (pos = str.find('%', pos)) != string::npos) {
  11. if (++pos == str.size()) {
  12. found = true;
  13. break;
  14. }
  15. if (str[pos] == '.') {
  16. if (++pos == str.size()) {
  17. found = true;
  18. break;
  19. }
  20. if (!isdigit(str[pos])) {
  21. found = true;
  22. break;
  23. }
  24. }
  25. while (isdigit(str[pos])) {
  26. if (++pos == str.size()) {
  27. found = true;
  28. break;
  29. }
  30. }
  31. found |= !isalpha(str[pos]);
  32. }
  33. cout << '"' << str << '"' << " : " << found << endl;
  34. }
  35. return 0;
  36. }
Success #stdin #stdout 0s 15240KB
stdin
dsfdf (%) dsfgs %d s32523
%d %d % %t dsg
dsfdf (%.k) dsfgs %d s32523
dsfdf (%.12.34f) dsfgs %d s32523
sfsf %d
sfsf %.d
sfsf %2d
dfsd %.464d, %353T
sfsf %.12
stdout
"dsfdf (%) dsfgs %d s32523" : 1
"%d %d % %t dsg" : 1
"dsfdf (%.k) dsfgs %d s32523" : 1
"dsfdf (%.12.34f) dsfgs %d s32523" : 1
"sfsf %d" : 0
"sfsf %.d" : 1
"sfsf %2d" : 0
"dfsd %.464d, %353T" : 0
"sfsf %.12" : 1