string_util.cpp
上传用户:clovervx
上传日期:2010-03-30
资源大小:787k
文件大小:1k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <string>
  3. using namespace std;
  4. void strip (string& s)
  5. {
  6. int i,j = s.size() - 1;  if (!s.size()) return;
  7. for (i = 0; s[i] == ' ';i++);
  8. if (i) s.erase(0,i); j = s.size(); if (!j) return; j--;
  9. for (i=j;i && s[i] == ' ';i--);
  10. if (i != j) s.erase(i+1,(size_t)-1);
  11. }
  12. //-------------------------------------------------
  13. void escape_string (string& s)
  14. {
  15. if (!s.size()) return;
  16. for (unsigned int i = 0;i<s.size();i++)
  17. {
  18.     switch (s[i]) {
  19.     case '': /* Must be escaped for "mysql" */
  20.       s[i] = '\';
  21.       s.insert(i,"0",1); i++;
  22.       break;
  23.     case 'n': /* Must be escaped for logs */
  24.       s[i] = '\';
  25.       s.insert(i,"n",1); i++;
  26.       break;
  27.     case 'r':
  28.       s[i] = '\';
  29.       s.insert(i,"r",1); i++;
  30.       break;
  31.     case '\':
  32.       s[i] = '\';
  33.       s.insert(i,"\",1); i++;
  34.       break;
  35.     case '"':
  36.       s[i] = '\';
  37.       s.insert(i,""",1); i++;
  38.       break;
  39.     case ''': /* Better safe than sorry */
  40.       s[i] = '\';
  41.       s.insert(i,"'",1); i++;
  42.       break;
  43.     case '32': /* This gives problems on Win32 */
  44.       s[i] = '\';
  45.       s.insert(i,"Z",1); i++;
  46.       break;
  47. default: break;
  48.     }
  49. }
  50. }