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