Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/57: Рейтинг темы: голосов - 57, средняя оценка - 4.67
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
1

не понимаю момент \0

27.10.2009, 19:51. Показов 10406. Ответов 26

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
string s;
cin>>s;
int n=0;
int w=0;
while(s='\0'){
++n;
if(s=' ')++w;
ошибки
Error 1 error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion) c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 13 proba
Error 2 error C2451: conditional expression of type 'std::basic_string<_Elem,_Traits,_Ax>' is illegal c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 16 proba
Error 3 error C2451: conditional expression of type 'std::basic_string<_Elem,_Traits,_Ax>' is illegal c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 18 proba
что не так?Объясните мне когда нужн юзать \0????или же в данном случае что буде правильнее?как объяснить компилятору,что мне нужен конец строки?

Добавлено через 57 секунд
и EOF попробовал,тоже самое
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2009, 19:51
Ответы с готовыми решениями:

Не понимаю момент про переменные и ссылки
Ребят подскажите или нарисуйте как обстоит дела с такими моментами в Java: Например, примитивный...

Определить момент силы торможения, если момент инерции маховика равен 1кг/м^2
маховик делал 10 оборотов в секунду,при торможении он остановился,сделав 30 оборотов от начало...

Каков вращающий момент, действующий на маховик, если момент сил трения в подшипниках 0,2 Нм
Маховик, имеющий форму диска, массой 35кг и диаметром 60 см через 3 с после включения мотора...

Определить скорость верхнего конца и момент импульса бревна в момент падения на землю
Столб высоты h=3,00 м и массы m=50,0 кг падает из вертикального положения на Землю. Определить...

26
1 / 1 / 0
Регистрация: 26.10.2009
Сообщений: 8
27.10.2009, 19:57 2
C++
1
2
3
4
5
6
7
char s[16];
cin>>s;
int n=0;
int w=0;
while(s=='\0'){
++n;
if(s==' ')++w;
Оператор '=' присвоения в условии цикла не стоит использовать, лучше все таки оператор равенства '=='. Это из того что вижу, а вообще целиком можно посмотреть код?

Типа string в си нет и небыло, есть тип char[]. В скобках размерность.

прр... Идея понятна... Зачем сравнивать всю строку с нуль символом? Операция недопустимая, на счет нуль символа ты прав
1
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 19:58  [ТС] 3
=DelFin=,
Error 1 error C2679: binary '>>' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion) c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 13 proba
Error 2 error C2678: binary '==' : no operator found which takes a left-hand operand of type 'std::string' (or there is no acceptable conversion) c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 16 proba
Error 3 fatal error C1903: unable to recover from previous error(s); stopping compilation c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 16 proba
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
27.10.2009, 20:10 4
МедведЪ, в Си юзай символ конец строки
в С++ есть str.length() - длина строки. str[str.length()-1] - последний символ строки.
1
1 / 1 / 0
Регистрация: 26.10.2009
Сообщений: 8
27.10.2009, 20:14 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "iostream"
 
using namespace std;
int main()
{
char s[16]; //обьявляем строку длинной 16 символов
cin >> s; // вводим через поток ввода
int i; //счетчик цикла
int n=0; //счетчики
int w=0;
 
for (i=0;i<15;i++) // перебираем все символы
{
    if (s[i]='\0') ++n; //символ конца, добавить к счетчику
    else
    if(s[i]=' ') ++w; // пробел, добавить 1 к счетчику
}
 
сout << "Probels:" << w << endl;
сout << "Ends:" << n << endl;
 
return 0; //завершиться
}
Присоединяюсь к предидущему посту, если программа не учебная. Полностью твоя прога выглядит так.
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 20:16  [ТС] 6
TanT, у меня половина С половина С++в си как это делать?ну конец строки?У меня ошибки

Добавлено через 1 минуту
Цитата Сообщение от =DelFin= Посмотреть сообщение
if (s[i]='\0') ++n;
а это уже не массив?мне надо со string
0
1 / 1 / 0
Регистрация: 26.10.2009
Сообщений: 8
27.10.2009, 20:18 7
Ну, в С строка есть массив символов, это стандарт языка. В других языках это тоже массив символов, только в С запись более наглядно отражает сущность строки.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
27.10.2009, 20:19 8
Цитата Сообщение от МедведЪ Посмотреть сообщение
TanT, у меня половина С половина С++в си как это делать?ну конец строки?У меня ошибки

Добавлено через 1 минуту

а это уже не массив?мне надо со string
давай отделим мух от котлет. на каком языке пишешь С/С++?
и второй самый главный вопрос: зачем тебе конец строки или, иначе, какова суть задания?
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 20:22  [ТС] 9
Цитата Сообщение от TanT Посмотреть сообщение
какова суть задания?
ну просто определисть длину строки(символы) и подсчет слов в строке..

Цитата Сообщение от TanT Посмотреть сообщение
давай отделим мух от котлет. на каком языке пишешь С/С++?
С++ну так что,варианты есть?
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
27.10.2009, 20:24 10
ещё один важный момент.
cin>>s - берёт строку до пробела или энтера, скомпили и введи две строки через пробел

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string s,ss;
    cin>>s>>ss;
    
    cout<<"s:"<<s<<"; ss:"<<ss<<endl;
 
    system("pause");
    return 0;
}
Добавлено через 54 секунды
длина строки str.length()
0
1 / 1 / 0
Регистрация: 26.10.2009
Сообщений: 8
27.10.2009, 20:24 11
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
#include <iostream>
 
 
using namespace std;
int main()
{
char s[16]; //обьявляем строку длинной 16 символов
cin >> s; // вводим через поток ввода
int i; //счетчик цикла
int n=0; //счетчики
int w=0;
 
for (i=0;i<15;i++)
{
    if (s[i]='\0') n=i-1;
    else
    if(s[i]=' ') ++w;
}
w=w+1;
 
сout << "Words:" << w << endl;
сout << "Dlina:" << n << endl;
 
 
return 0;
}
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 20:27  [ТС] 12
Цитата Сообщение от TanT Посмотреть сообщение
cin>>s - берёт строку до пробела или энтера, скомпили и введи две строки через пробел

Цитата Сообщение от TanT Посмотреть сообщение
cin>>s>>ss;
я этот трюк не знал,как понять?

Добавлено через 20 секунд
Цитата Сообщение от TanT Посмотреть сообщение
длина строки str.length()
я знаю,но сам хочу написать

Добавлено через 1 минуту
Цитата Сообщение от =DelFin= Посмотреть сообщение
char s[16]; //обьявляем строку длинной 16 символов
Цитата Сообщение от МедведЪ Посмотреть сообщение
мне надо со string
я ведь написал
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
27.10.2009, 20:34 13
вот тебе простой пример на твою задачу
умные человеки типа Rififi сказали бы что для поиска пробела надо ползоваться find, но это тебе пример чтобы познакомиться со string

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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string s;
    int count=0, countWord=0, countPrev=0;
 
    getline(cin,s);  // получить строку до нажатия энтер (по умолчанию)
    cout<<"s:"<<s;
 
    while (count<s.length())
    {
        if (s[count]==' ')
        {
            ++countWord;
            cout<<"\n word: "<<countWord<<" length: "<<count-countPrev;
            countPrev=count;
        }
        ++count;
    }
 
    system("pause");
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от МедведЪ Посмотреть сообщение

я этот трюк не знал,как понять?
cin>>s>>ss; это тоже что cin>>s; cin>>ss;
в книжках пишут
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 20:38  [ТС] 14
TanT,
Error 1 error C3861: 'getline': identifier not found c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 15 proba
Error 2 error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion) c:\documents and settings\ag\my documents\visual studio 2008\projects\proba\proba\code.cpp 16 proba
Добавлено через 34 секунды
Цитата Сообщение от TanT Посмотреть сообщение
в книжках пишут
у меня щас КиР а в Си cout нету

Добавлено через 12 секунд
cin то есть
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
27.10.2009, 20:45 15
Цитата Сообщение от МедведЪ Посмотреть сообщение
С++ну так что,варианты есть?
какое С ?

только С++ весь код вставь и откомпили. поробуй закоментить using namespace std;
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 20:48  [ТС] 16
Цитата Сообщение от TanT Посмотреть сообщение
поробуй закоментить using namespace std;
ну да...и это не пойму,почему всем кажется что это только ламеры делают так?
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
27.10.2009, 20:55 17
Цитата Сообщение от МедведЪ Посмотреть сообщение
ну да...и это не пойму,почему всем кажется что это только ламеры делают так?
МедведЪ, без паники, ты тут наверно единственный кто пытается вникнуть и понять, а не просто кричать ПАмагите!!! что уже достойно уважения

я тебе без всякого ехидства рекомендую почитать литературу из ФАКа по языку. Я вот "Освой самостоятельно С++ за 21 день" дочитываю, говорят хорошая вот решил проверить. хоть многое уже в других чиатл, всё равно есть чему поучиться

Добавлено через 1 минуту
совсем если затор будет спрашивай, только формулируй чётко вопрос. потому что правильно сформулированный вопрос уже половина ответа (с) сам пока будешь придумывать как сказать о решении догадаешься, бывает и такое
0
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
27.10.2009, 23:05  [ТС] 18
Цитата Сообщение от TanT Посмотреть сообщение
ты тут наверно единственный кто пытается вникнуть и понять, а не просто кричать ПАмагите!!! что уже достойно уважения
ахах ну спасибоно во всяком случае не единственный

Не по теме:

ксттаи решил КиР бросить,тут,на форуме говорят что с Левым переводом,да и компилятор много ругается...страуструп сойдет мне?


ну все же,по делуу меня ошибки...

Добавлено через 1 час 48 минут
TanT, ладно,скажи мне почему тут ошибка?
C++
1
2
string s;
cin>>s;
?
и какой синтаксис функции strlen?
0
Эксперт JavaЭксперт С++
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
28.10.2009, 00:34 19
МедведЪ, тебе надо считать до нажатия ентера? Если да, то попробуй такой вариант
C++
1
getline(cin, s, '\n');
где cin - поток, s - строка, '\n' - символ, до которого считывать
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
28.10.2009, 01:59 20
Цитата Сообщение от МедведЪ
ксттаи решил КиР бросить,тут,на форуме говорят что с Левым переводом,да и компилятор много ругается...страуструп сойдет мне?
нужно бумажную брать и обе, Страуструпа не потянешь, так как он приводит примеры со структурами, которые нужно знать уже
0
28.10.2009, 01:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2009, 01:59
Помогаю со студенческими работами здесь

Найти момент сил M, действующие на шар в момент времени t =2 с после начала движения
Шар, радиус которого 15 R= см, масса 5 m= кг, движется вокруг неподвижной оси, проходящей через...

Найти момент инерции I и момент импульса земного шара относительно оси вращения
Найти момент инерции I и момент импульса земного шара относительно оси вращения.Масса Земли равна...

Найти момент импульса карандаша относительно точки опоры в момент его падения на стол
Карандаш длиной 15 см и массой 10 г, поставленный вертикально, падает на стол . Найти момент...

Найти момент силы, действующей на диск в момент времени
однородный диск радиусом R = 0,2 м и массой m = 5 кг вращается вокруг оси, проходящей через его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru