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

ворпос по поводу пробелов в строке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятные условия в некоторых примерах http://www.cyberforum.ru/cpp-beginners/thread11241.html
Читаю книгу, и там пример: ... int my_func(); ... int main() { ... if(my_func()) { cout << ...
C++ Свитчер Написал подобного рода прогу. int main() { int nomber; cout << "Choise the nomber of exercise(1-10, and other nomber to exit): "; cin >> nomber; http://www.cyberforum.ru/cpp-beginners/thread11235.html
Тип char и указатели C++
Вопрос... Тип может хранить только символы, или строки тоже? Если только символы, то почему этот код работает?: ... void my_func(char* my_string) { for(int x = 0; x < 10; x++) { std::cout << *(my_string + x) << "\n"; }
Иероглифы при чтении из файла C++
Привожу код, в котором создаю, файл записываю в него данные. Затем пытаюсь их считать, выводит иероглифы... Что не так?. Спасибо. #include "stdafx.h" #include <iostream> #include <fstream> #include <cstring> using namespace std; int main() { ofstream txtfile( "Testfile.txt" );
C++ Проблема с проверкой условия цикла for( int i=2; !((n%i||d%i)&&!(n%i&&d%i))==0 ; i++) http://www.cyberforum.ru/cpp-beginners/thread11197.html
Здраствуйте. Проблема заключается в следующем. Есть следующий цикл: for( int i=2; !((n%i||d%i)&&!(n%i&&d%i))==0 ; i++){ while ((n%i||d%i)==0){ n/=i; d/=i; } } Допустим, n и d равно 18 и 36. Как я понимаю, проверка условия должна выглядеть так: 18%2=0 36%2=0
C++ Как использовать функцию класса в другом классе (ни один из классов не наследует другой)? функция в классе в котором она прописана объявлена как паблик. void auction::rvectoroldtime(int oldtime1, double low, double high ) { vectoroldtime=(double *)calloc(oldtime*4, sizeof(double)); for(int i=0; i<4*oldtime; i++) { vectoroldtime=neyro::frand(double low, double high); } return; }вот такой код не компилица. подробнее

Показать сообщение отдельно
4aineg
0 / 0 / 0
Регистрация: 07.08.2008
Сообщений: 23
14.08.2008, 10:48     ворпос по поводу пробелов в строке
А как мне в своем коде изменить чтобы вместо «_» при наборе предложения можно ставить пробелы, пытаюсь вводить через консоль с пробелами: выводит и работает только с одним словом

Код
#include <iostream>
  #include <cstring>
  using namespace std;
   
  class Line
  {
  private:
   
        char *Line1; 
        int length;
   
  public:
   
        Line()
        {
              length = 1;
              Line1 = new char[length];
              Line1[length-1] = '\0'; 
        }
   
      Line(const char* L1)
      {
            length = strlen(L1)+1;
          Line1 = new char[length];
          strcpy(Line1, L1);
              Line1[length-1] = '\0';
      }
   
      friend ostream& operator << (ostream& out , Line& l);
        friend istream& operator >> (istream & in, Line &l);
        Line operator - (char letter);
        bool operator == (Line l);
        int CountWordsInLine();
        char* ReverseLine(); 
        void DrawStar();
   
        ~Line()
        {
              delete [] Line1;
        }
  };
   
  int Line::CountWordsInLine()
        {
          int Count=0;
          for(int i=0; i<length; i++)
        {
          if (Line1[i]==' ')
              Count++;
        }
          Count++;
          return Count;
        }
   
  char* Line::ReverseLine() 
        {
          for (int i=0; i<(length-1)/2; i++)
        {
              char temp = Line1[i];
              Line1[i] = Line1[length-i-2];
              Line1[length-i-2] = temp;
        }
              return Line1;
        }
   
  void Line::DrawStar()
  {
        for (int i=0; i<45; i++)
              cout << '*';
        cout << endl;
  }
   
  istream & operator >> (istream & in, Line& l)
        {
              char *temper = new char[100];
              in >> temper;
              l.length = strlen(temper)+1;
              temper[l.length-1] = '\0'; 
              l.Line1 = new char[l.length];
              strcpy(l.Line1, temper);
              l.Line1[l.length-1] = '\0';
              return in;
        }
   
      ostream& operator << (ostream& out, Line& l)
        {
              return out << l.Line1;
        }
   
        Line Line::operator - (char letter)
        {
              char *temp = new char[length];
              int i,j;
              for (i=0, j=0; i<length; i++)
              {
                    if (Line1[i] != letter)
                    {
                          temp[j] = Line1[i];
                          j++;
                    }
              }
              temp[j] = '\0';
              return temp;
      }
   
        bool Line::operator == (Line l)
        {
              int i, j;
              for (i=0, j=0; i<length-1, j<length-1; i++, j++)
                    if (Line1[i] == l.Line1[j])
                          return true;
              return false;
        }
   
  int main()
  {
        Line ln1;
        Line ln2("What's up niger");
        cout << "enter sentence: "; 
        cin >> ln1;
        cout << "normal sentece: " << ln1 << endl;
   
        if(ln1 == ln2)
              cout << "sentences are equal" << endl;
        else
              cout << "sentences are not equal" << endl;
        cout << "number of words: " << ln1.CountWordsInLine() << endl;
        ln1.DrawStar();
        cout << "enter letter: ";
        char temp;
        cin >> temp;
        cout << "without letter: " << ln1 - temp << endl;
        cout << "reversed sentence: " << ln1.ReverseLine() << endl;
        
        return 0;
  }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru