fork(1) download
  1. #include <iostream>
  2. #include <regex>
  3. #include <string>
  4. #include <stdio.h>
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. regex java("([a-z]+[A-Z]*[a-z]*)+");
  10. regex cpp("([a-z]+[_]?[a-z]+)+");
  11. regex mayus("[A-Z]");
  12. char palabra2[100];
  13. while (scanf("%s", palabra2)!=EOF)
  14. {
  15. string palabra=palabra2;
  16. if (regex_match(palabra,java)==false && regex_match(palabra,cpp)==false)
  17. {
  18. cout << "Error!" << endl;
  19. }
  20. else if (regex_match(palabra,cpp))
  21. {
  22. for (int i = 0; i < palabra.length(); i++)
  23. {
  24. if (palabra[i]=='_')
  25. {
  26. palabra[i+1]=palabra[i+1]-32;
  27. palabra.erase(i,1);
  28. }
  29. }
  30. cout << palabra << endl;
  31. }
  32. else if (regex_match(palabra,java))
  33. {
  34. for (int i = 0; i < palabra.length(); i++)
  35. {
  36. if (palabra[i]>='A' && palabra[i]<='Z')
  37. {
  38. palabra[i]=palabra[i]+32;
  39. palabra.insert(i, "_");
  40. }
  41. }
  42. cout << palabra << endl;
  43. }
  44. }
  45. return 0;
  46. }
  47.  
  48.  
Success #stdin #stdout 0s 3560KB
stdin
this_is_a_valid_cpp_type_identifier
stdout
Error!