fork(1) download
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <string>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. char ss[100];
  9. int t;
  10. int j =0;
  11. while (scanf("%s", ss)!=EOF)
  12. {
  13. string ns="";
  14. string s=ss;
  15. if (s[0]=='_' || s[s.length()-1]=='_' || (s[0]>='A' && s[0]<='Z'))
  16. {
  17. cout << "Error!" << endl;
  18. }
  19. else
  20. {
  21. for (int i = 1; i < s.length(); i++)
  22. {
  23. if (s[i]=='_')
  24. {
  25. t=1;
  26. break;
  27. }
  28. else if(s[i]<='Z' && s[i]>='A')
  29. {
  30. t=2;
  31. break;
  32. }
  33. }
  34. switch (t)
  35. {
  36. case 1:
  37. for (int i = 0; i < s.length(); i++)
  38. {
  39. if(s[i]>='A' && s[i]<='Z')
  40. {
  41. cout << "Error!" << endl;
  42. break;
  43. }
  44. else if (s[i]=='_' && s[i+1]=='_')
  45. {
  46. cout << "Error!" << endl;
  47. break;
  48. }
  49. else if (s[i-1]=='_')
  50. {
  51. j++;
  52. continue;
  53. }
  54. else if (s[i]=='_')
  55. {
  56. char a=s[i+1]-32;
  57. ns=ns+(a);
  58. }
  59. else
  60. {
  61. ns=ns+s[i];
  62. }
  63. j++;
  64. }
  65. if (j==s.length())
  66. {
  67. cout << ns << endl;
  68. }
  69. break;
  70. default:
  71. for (int i = 0; i < s.length(); i++)
  72. {
  73. if (s[i]=='_')
  74. {
  75. cout << "Error!" << endl;
  76. }
  77. else if (s[i]>='A' && s[i]<='Z')
  78. {
  79. char a=s[i]+32;
  80. ns=ns+"_"+(a);
  81. }
  82. else
  83. {
  84. ns=ns+s[i];
  85. }
  86. j++;
  87. }
  88. if (j==s.length())
  89. {
  90. cout << ns << endl;
  91. }
  92. }
  93. }
  94. s="";
  95. ns="";
  96. j=0;
  97. }
  98. return 0;
  99. }
Success #stdin #stdout 0s 3476KB
stdin
name_name_
stdout
Error!