fork download
  1. #include <iostream>
  2. #include <string>
  3. std::string LamDepTen(std::string Input)
  4. {
  5. //Dùng biến Temp làm bản nháp để tính toán
  6. std::string Temp = "";
  7.  
  8. //Loại các ký tự không phải chữ cái và dấu cách
  9. for (int i = 0; i < Input.length(); i += 1)
  10. {
  11. if (isalpha(Input[i]) || (Input[i] == ' '))
  12. Temp += Input[i];
  13. }
  14. Input = Temp;
  15.  
  16. //Nếu loại xong mà chuỗi không còn gì thì trả về luôn
  17. if (Input.length() == 0)
  18. return Temp;
  19.  
  20. //Loại các ký tự cách liên tiếp
  21. Temp = "";
  22. Temp += Input[0];
  23. for (int i = 1; i < Input.length(); i += 1)
  24. if (Input[i - 1] != ' ' || Input[i] != ' ')
  25. Temp += Input[i];
  26. Input = Temp;
  27.  
  28. //Nếu loại xong mà chuỗi chỉ còn dấu cách thì trả về khoảng trắng
  29. if (Input == " ")
  30. return "";
  31.  
  32. //Chuyển tất cả về chữ cái thường
  33. Temp = "";
  34. for (int i = 0; i < Input.length(); i += 1)
  35. {
  36. if (Input[i] >= 'A' && Input[i] <= 'Z')
  37. Temp += (char)(Input[i] + 32);
  38. else
  39. Temp += Input[i];
  40. }
  41. Input = Temp;
  42.  
  43. //Thêm dấu space vào đầu chuỗi
  44. if (Input[0] != ' ')
  45. Input = ' ' + Input;
  46.  
  47. //Loại dấu space ở cuối cùng chuỗi
  48. Temp = "";
  49. for (int i = 0; i < Input.length()-1; i += 1)
  50. {
  51. Temp += Input[i];
  52. }
  53. if (Input[Input.length() - 1] != ' ')
  54. Temp += Input[Input.length() - 1];
  55. Input = Temp;
  56.  
  57. //Chuyển các ký tự sau dấu space thành chữ hoa
  58. Temp = " ";
  59. for (int i = 1; i < Input.length(); i +=1)
  60. {
  61. if (Input[i - 1] == ' ')
  62. Temp += (char)(Input[i] - 32);
  63. else
  64. Temp += Input[i];
  65. }
  66. Input = Temp;
  67.  
  68. //Loại ký tự space ở đầu chuỗi
  69. Temp = "";
  70. for (int i = 1; i < Input.length(); i += 1)
  71. Temp += Input[i];
  72. Input = Temp;
  73.  
  74. //Trả về kết quả
  75. return Input;
  76. }
  77. int main()
  78. {
  79. std::string TenBanDau = "@#TrA123N H!~!#$#@o<><><,.,.,aN";
  80. std::cout << "Nhap ten can lam dep: " << TenBanDau << std::endl;
  81. std::string TenDaLamDep = LamDepTen(TenBanDau);
  82. std::cout << "Ten da lam dep: " << TenDaLamDep;
  83. return 0;
  84. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Nhap ten can lam dep: @#TrA123N    H!~!#$#@o<><><,.,.,aN
Ten da lam dep: Tran Hoan