Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: подсчёт количества слов в тексте

Сообщения:  [1-10]   [11-17] 

 
 автор: Trianon   (03.04.2007 в 19:38)   письмо автору
 
   для: oleg_alexeev   (02.04.2007 в 11:42)
 

255. Если пользователь введет больше, поведение программы перестанет быть предсказуемым.

  Ответить  
 
 автор: oleg_alexeev   (02.04.2007 в 11:42)   письмо автору
 
   для: ols   (02.04.2007 в 11:38)
 

Да. Если пользователь введет больше, программа аварийно завершится.

  Ответить  
 
 автор: ols   (02.04.2007 в 11:38)   письмо автору
 
   для: oleg_alexeev   (02.04.2007 в 09:12)
 


char string[256];

256 в даенном случае это кол-во символов допустимых?

  Ответить  
 
 автор: oleg_alexeev   (02.04.2007 в 09:12)   письмо автору
 
   для: ols   (01.04.2007 в 16:50)
 


using namespace std;

действительно не объявление переменной. В С++ имеются так называемые пространства имен. Они придуманы для решения проблемы конфликта имен переменных и функций в больших проектах, где в программу включаются десятки заголовочных файлов и есть большая вероятность, что имена могут совпасть. У пространства имен есть свое имя, например std - это пространство имен стандартной библиотеки С++. Есть еще безымянное пространство имен для совместимости с Си. Как это работает?
обычное объявление

void MyFunc();

объявляет функцию в глобальном пространстве имен, а

namespace my
{
void MyFunc();
}

объявляет функцию в пространстве имен my.
Для вызова этих функций надо писать

MyFunc();  // для вызова первой
::MyFunc();  // для вызова первой
my::MyFunc();  // для вызова второй

Директива using позволяет использовать имена из некоторого пространства имен не приписывая к ним имя пространства имен, т.е. писать cout вместо std::cout


Для ввода текста с клавиатуры можно написать еще и так:

char string[256];
cout << "Vvedite text: ";
cin  >> string;

  Ответить  
 
 автор: ols   (01.04.2007 в 16:50)   письмо автору
 
   для: cheops   (01.04.2007 в 16:36)
 

Затруднение с указателем *string.

int main(int argc, char **argv)
{
    char *string = "programmirovanie, eto estj nechto klassnoe";
    char maxword[100], minword[100];

    FindMinMax(string, maxword, minword);
    printf("max: %s\n", maxword);
    printf("min: %s\n", minword);
}

Тоесть в данном случае здесь уже задано в программе значение -
char *string = "programmirovanie, eto estj nechto klassnoe";

Я пытался зделать так, чтобы текст (к примеру - programmirovanie, eto estj nechto klassnoe) можно было ввести с клавиатуры. а затем уже далее ясно - программа выводит слово с минимальным и макситмальным значением:

cout<<"Vvedite text="<<endl;cin>>*string;

и в общем случае изменил код вот так:


[/codint main(int argc, char **argv)
{
    char *string;
    cout<<"Vvedite text="<<endl;cin>>*string;
    char maxword[100], minword[100];

    FindMinMax(string, maxword, minword);
    printf("max: %s\n", maxword);
    printf("min: %s\n", minword);
}

Но видимо так нельзя делать, простите, наверное грубая ошибка.

  Ответить  
 
 автор: ols   (01.04.2007 в 16:50)   письмо автору
 
   для: cheops   (01.04.2007 в 16:36)
 

Затруднение с указателем *string.

int main(int argc, char **argv)
{
    char *string = "programmirovanie, eto estj nechto klassnoe";
    char maxword[100], minword[100];

    FindMinMax(string, maxword, minword);
    printf("max: %s\n", maxword);
    printf("min: %s\n", minword);
}

Тоесть в данном случае здесь уже задано в программе значение -
char *string = "programmirovanie, eto estj nechto klassnoe";

Я пытался зделать так, чтобы текст (к примеру - programmirovanie, eto estj nechto klassnoe) можно было ввести с клавиатуры. а затем уже далее ясно - программа выводит слово с минимальным и макситмальным значением:

cout<<"Vvedite text="<<endl;cin>>*string;

и в общем случае изменил код вот так:


[/codint main(int argc, char **argv)
{
    char *string;
    cout<<"Vvedite text="<<endl;cin>>*string;
    char maxword[100], minword[100];

    FindMinMax(string, maxword, minword);
    printf("max: %s\n", maxword);
    printf("min: %s\n", minword);
}

Но видимо так нельзя делать, простите, наверное грубая ошибка.

  Ответить  
 
 автор: cheops   (01.04.2007 в 16:36)   письмо автору
 
   для: ols   (01.04.2007 в 15:43)
 

Что вызывает затруднение? Прикрепите к сообщению архив с тем, что у вас сейчас имеется?

  Ответить  
 
 автор: ols   (01.04.2007 в 15:43)   письмо автору
 
   для: oleg_alexeev   (31.03.2007 в 17:37)
 

Хм, что-то не получается внедирить код cheopsa в код oleg'a_alexeev'a. Помогите пожалуйста. Еще несовсем ясно

using namespace std;

Это объявления тип'а переменной?

  Ответить  
 
 автор: oleg_alexeev   (31.03.2007 в 17:37)   письмо автору
 
   для: ols   (31.03.2007 в 00:56)
 

Чтобы компилятор не ругался на функцию printf надо включить её объявление:

#include <stdio.h>


>> p.s. А чем форматный вывод отличается? так и не пойму

printf входит в набор стандартных библиотечных функций языка С. С++ включает в себя С вместе с его стандартными функциями, поэтому в С++ можно пользоваться как объектно-ориентированным вводом-выводом, так и обычным, основанным на функциях. Набор возможностей одного и другого способа одинаков, разный только стиль написания программы.

Кстати я написал этот пример в стиле С. От языка С++ там только тип bool. Если писать в стиле С++, то кроме замены printf на cout надо бы вместо буферов для строк использовать класс std::string.

  Ответить  
 
 автор: cheops   (31.03.2007 в 14:19)   письмо автору
 
   для: ols   (31.03.2007 в 01:36)
 

Для этого удобно воспользоваться функцией fgets() из библиотеки <stdio>
#include <stdio>
#include <iostream>
using namespace std;

int main()
{
  char input[80];
  int number = 0;

  cout << "Введите строку " << endl;
  fgets(input, 80, stdin);

  while(input[number++]);

  cout << "Строка содержит " << number << " символов " << endl;

  return 0;
}

  Ответить  

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования