Форум программистов, компьютерный форум CyberForum.ru

Строки в с++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ задачи с циклами http://www.cyberforum.ru/cpp-beginners/thread408463.html
помогите решить данные задачи 1) кубик в цилиндре (входит или нет) 2) число в степени с помощью циклов 3) вывести на четырёх циклах от 0 до 9 с помощью (for и while) Добавлено через 2 часа 16 минут в Dev-C++ Добавлено через 13 часов 8 минут со вторым разобрался
C++ Работа с классами и конструкторами Помогите, пожалуйста, может у кого есть похожие задачи или такие же)) http://www.cyberforum.ru/cpp-beginners/thread408447.html
Работа с массивом объектов базового и наследующего класса C++
Написал базовый класс Fraction несократимых положительных дробей и наследующий от него класс Rational чисел вида целая часть + дробная часть (здесь используется Fraction). Реализация классов: #include <iostream> #include <typeinfo> using namespace std; class Fraction { public: int a,b;
C++ Перевод из одной системы счисления в другую
Суть задачи такова: Написать программу , которая переводит число из 2-й системы счистления в 12-ю через 10-ю. Заранее спасибо!)Язык С++ Добавлено через 35 минут Вот я умею только так из 2 в 10 #include <iostream> #include <iomanip> #include <math.h> #include <conio.h> #include <String.h>
C++ Адрес объекта. http://www.cyberforum.ru/cpp-beginners/thread408427.html
Есть класс.В котором при вызове конструктора выводится адрес объекта. cout << "Hello from object: " << this << endl; Надо теперь сделать вывод в окно.Не получается сделать преобразование типов: MessageBoxA(NULL,(LPCSTR)this,"Hello from",MB_OK);
C++ комметарии к задаче мне помогли решить задачу, но нужно еще дописать комментарии. Кое-где я уже написала их, но как писать остальные не совсем понимаю. Помогите, пожалуйста! #include "iostream.h"//подключаем заголовочный файл iostream.h #include "conio.h"//подключаем заголовочный файл conio.h #include "math.h"//подключаем заголовочный файл math.h double Taylor(double x, double eps, int count) { double... подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
16.12.2011, 09:05     Строки в с++
Вот вариант без порчи строк.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <fstream>
#include <vector>
#include <cctype>
using namespace std;
 
struct varchar {
   char  cs[64];
   char  ws[64];
};
void    split(const char* s, vector<varchar>* vec);
char*  join(char* s, vector<varchar>* vec);
void    word_swap(vector<varchar>* vec);
 
int main(void) {
   ifstream fin("D:\\in.txt");
   if(! fin)
       return 1;
   vector<varchar> vec;
   char line[256] = {'\0'};
 
   ofstream fout("D:\\out.txt");
   if(! fout) {
        fin.close();
        return 1;
   }
   while(fin.getline(line, sizeof(line)-1, '\n')) {
        split(line, &vec);
        word_swap(&vec);
        join(line, &vec);
        fout << line << endl;
        vec.clear();
  }
  fout.flush();
  fout.close();
  fin.close();
  return 0;
}
 
// разбивка
void split(const char* s, vector<varchar>* vec) {
   varchar var;
   char* p;
   while(*s) {
        for(p = var.cs; ! isalpha(*s) && *s; *p++ = *s++);
        *p = '\0';
        for(p = var.ws;   isalpha(*s) && *s; *p++ = *s++);
        *p = '\0';
        vec->push_back(var);
    }
}
 
// соединение элементов в строку
char*  join(char* s, vector<varchar>* vec) {
   char *t = s;
   const char* p;
   for(vector<varchar>::const_iterator i = vec->begin(); i != vec->end(); *i++) {
           for(p = i->cs; *p; *s++ = *p++);
           for(p = i->ws; *p; *s++ = *p++);
   }
   *s = '\0';
    return t;
}
 
// обмен слов
void  word_swap(vector<varchar>* vec) {
   vector<varchar>::iterator ia, ib;
   size_t  num  = strlen((*vec)[0].ws);
   size_t  imax = num, imin = num;
   char buf[64];
   ia = ib = vec->begin();
   for(vector<varchar>::iterator i = vec->begin(); i != vec->end(); *i++) {
        if((num = strlen(i->ws)) == 0u)
              continue;
        if(num < imin) {
              imin = num;
              ia = i;
        } else if(num >= imax) {
              imax = num;
              ib = i;
        }
   }
   strcpy(buf, ia->ws);
   strcpy(ia->ws, ib->ws);
   strcpy(ib->ws, buf);
}
Под кириллицу не подбивал.
 
Текущее время: 23:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru