С++

Работа со строками:

  • s.substr(pos, length) — возвращает подстроку из строки s, начиная с номера pos длинной length символов;
  • s.empty() — возвращает значение true, если строка s пуста, false — в противном случае;
  • s.insert(pos, s1) — вставляет строку s1 в строку s, начиная с позиции pos;
  • s.remove(pos, length) — удаляет из строки s подстроку length длинной pos символов;
  • s.find(s1, pos) — возвращает номер первого вхождения строки s1 в строку s, поиск начинается с номера pos, параметр pos может отсутствовать , в этом случае поиск идет с начала строки;
  • s.findfirst(s1, pos) — возвращает номер первого вхождения любого символа из строки s1 в строку s, поиск начинается с номера pos, который может отсутствовать.

Убрать пробелы из строки:

string trim(string ss){
 int i=0;
 string st=""; 
 while(i!=ss.length()-1){
   if(ss[i]!=' '){st+=ss[i];};
   i++;
 };    
 return st;
};

Ковертация типов:

Из числа в строку:

string from_int(int number){
    stringstream ss;
    ss << number;
    return ss.str();
}
string from_float(float number){
    stringstream ss;
    ss << number;
    return ss.str();
}

Из строки в число: atoi()

Работа с MySQL:

MYSQL *connectionNOC;
MYSQL_RES *result;
MYSQL_ROW row;
int query_state;
  connectionNOC = mysql_init(NULL); 
  if(connectionNOC == NULL) {
    // Если дескриптор не получен - выводим сообщение об ошибке
    fprintf(stderr, "Error: не могу получить дискриптор соединения с MySQL\n");    
    exit(1);
  };   
  if (!mysql_real_connect(connectionNOC,hostbase,userbase,passbase,namebase,3306,0,0)){
    fprintf(stderr, "Error: не могу соедениться с НОС. Пробую работать автономно! %s\n",mysql_error(connectionNOC));        
    noc=1;      
  };  

    sql="SELECT lanbshconfig.* FROM lanbshaperservers inner join lanbshconfig on lanbshconfig.idsh=lanbshaperservers.id WHERE lanbshaperservers.sname='servername'";
    sql.replace(sql.find("servername"),std::string ("servername").size(),hostname);
    if (mysql_query(connectionNOC, sql.c_str()) != 0){
        fprintf(stderr,"Error: can't execute SQL-query %s\n",mysql_error(connectionNOC));
        exit(1);
    };
    result=mysql_store_result(connectionNOC);
    if(result == NULL) {
        fprintf(stderr,"Error: can't get the result description \n");
        exit(1);
    };
    while ((row = mysql_fetch_row(result)) != NULL){
      cfg.agents=row[24];
   };

Работа с текстовыми файлами

Чтение:

    ofstream F;
    F.open("/etc/shapercpp.cfg");
    F<< cfg.agents;F<< "\n";
    F.close();

Запись:

ifstream F;
    F.open("table1.lst");
    while (!F.eof()){
        F.getline(buff,50);
        ss=std::string(buff);        
    };   
    F.close();  
    F.clear();

Продолжение следует..


Жизнь замечательных грибов