Advertisement
thienlang

edit string

Sep 26th, 2013
339
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.90 KB | None | 0 0
  1. //edit string and in out file
  2. //***************************************//
  3.  
  4. //Chương trình được code trên visual studio 2012.
  5. #define _CRT_SECURE_NO_WARNINGS
  6.  
  7. #include "iostream"
  8. #include "string"
  9. #include "fstream"
  10. #include "conio.h"
  11. #include "cstring"
  12.  
  13. using namespace std;
  14.  
  15. //hàm mở file.
  16. //mở file "file" có tên name để đọc.
  17. //mở file dạng nhị phân.
  18. void open_File_Read(fstream &file, string name);
  19.  
  20. //hàm mở file để ghi.
  21. //file có tên name.
  22. //ghi dạng nhị phân
  23. void open_File_Write(fstream &file,string name);
  24.  
  25. //hàm kiểm tra file có mở
  26. //nếu có trả về giá trị true.
  27. //nếu không mở được trả vè false.
  28. bool check_File( fstream &file);
  29.  
  30. //hàm đóng file
  31. //đóng file "file"
  32. void close_File(fstream &file);
  33.  
  34. //Hàm đọc file "file" ra chuỗi str
  35. void Read_File(fstream &file, string &str);
  36.  
  37.  
  38. //hàm chuẩn hóa chuỗi str
  39. //loại khoảng trắng thừa ở đầu.
  40. //loại khoảng trắng thừa ở cuối
  41. //loại các khoảng trắng liên tiếp.
  42. void edit_Str(string &str);
  43.  
  44. //Hàm xóa khoảng trắng ở đầu chuỗi
  45. void edit_Str_Start(string &str);
  46.  
  47. //Hàm xóa khoảng trắng ở cuối chuỗi
  48. void edit_Str_End(string &str);
  49.  
  50. //Hàm Xóa các khoảng trẳng liên tiếp trong chuỗi.
  51. void edit_Str_Mid(string &str);
  52.  
  53. //hàm ghi 1 chuỗi string vào file.
  54. void Write_File(fstream &file, string &str);
  55.  
  56. void main()
  57. {
  58.     fstream fileIn;
  59.     fstream fileOut;
  60.     string str;
  61.     open_File_Read(fileIn,"input.txt"); //mở file Input
  62.     if (!check_File( fileIn )) //Kiểm tra tồn tại của file Input
  63.         return;
  64.  
  65.     Read_File(fileIn,str); //Đọc file Input
  66.  
  67.     close_File(fileIn); //Đóng file Input
  68.  
  69.     edit_Str(str); //chuẩn hóa chuỗi đọc được từ file Input
  70.  
  71.     open_File_Write(fileOut,"output.txt"); //mở file output có tên "output.txt"
  72.     Write_File(fileOut,str); //ghi str vào fileOut.
  73.  
  74.     close_File(fileOut); //Đóng fileOut
  75. }
  76.  
  77. //hàm mở file.
  78. //mở file "file" có tên name để đọc.
  79. //mở file dạng nhị phân.
  80. void open_File_Read(fstream &file, string name)
  81. {
  82.     file.open(name,ios::in|ios::binary);
  83. }
  84.  
  85. //hàm mở file để ghi.
  86. //file có tên name.
  87. //ghi dạng nhị phân
  88. void open_File_Write(fstream &file,string name)
  89. {
  90.     file.open(name,ios::out|ios::binary);
  91. }
  92.  
  93. //hàm kiểm tra file có mở
  94. //nếu có trả về giá trị true.
  95. //nếu không mở được trả vè false.
  96. bool check_File( fstream &file)
  97. {
  98.     if ( !file.is_open())
  99.     {
  100.         cout << "file khong ton tai";
  101.         return false;
  102.     }
  103.     return true;
  104.  
  105. }
  106.  
  107. //hàm đóng file
  108. //đóng file "file"
  109. void close_File(fstream &file)
  110. {
  111.     file.close();
  112. }
  113.  
  114. //Hàm đọc file "file" ra chuỗi str
  115. void Read_File(fstream &file, string &str)
  116. {
  117.     getline(file,str);
  118. }
  119.  
  120. //hàm chuẩn hóa chuỗi str
  121. //loại khoảng trắng thừa ở đầu.
  122. //loại khoảng trắng thừa ở cuối
  123. //loại các khoảng trắng liên tiếp.
  124. void edit_Str(string &str)
  125. {
  126.     edit_Str_Start(str);
  127.     edit_Str_End(str);
  128.     edit_Str_Mid(str);
  129. }
  130.  
  131. //Hàm xóa khoảng trắng ở đầu chuỗi
  132. void edit_Str_Start(string &str)
  133. {
  134.     int n = str.length();
  135.     int i = 0;
  136.     while ( i < n && str[i] == ' ')
  137.         i++;
  138.     str.erase(0,i);
  139.  
  140. }
  141.  
  142. //Hàm xóa khoảng trắng ở cuối chuỗi
  143. void edit_Str_End(string &str)
  144. {
  145.     int n = str.length();
  146.     int i = 0;
  147.     while (n > 0 && str[n-1] == ' ')
  148.     {
  149.         n--;
  150.         i++;
  151.     }
  152.     str.erase(n,i);
  153. }
  154.  
  155. //Hàm Xóa các khoảng trẳng liên tiếp trong chuỗi.
  156. void edit_Str_Mid(string &str)
  157. {
  158.     string s = "  "; //chuỗi s là chuỗi có 2 khoảng trắng liên tiếp
  159.     int loca;// biến lưu vị trí chứa 2 khoảng trắng trong chuỗi.
  160.     loca =  str.find(s);
  161.     while ( loca != -1 )
  162.     {
  163.         str.erase(loca,1);
  164.         loca =  str.find(s);
  165.     }
  166. }
  167.  
  168. //hàm ghi 1 chuỗi string vào file.
  169. void Write_File(fstream &file, string &str)
  170. {
  171.  
  172.     file << str;
  173.  
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement