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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
#1

Баг strcmp - C++

27.11.2010, 18:57. Просмотров 1539. Ответов 33
Метки нет (Все метки)

Линк на архив с видео, где записана ошибка.
http://upload.com.ua/get/902136351/Bug.zip
Пароль: bug
Объясните ситуацию.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2010, 18:57     Баг strcmp
Посмотрите здесь:

strcmp C++
C++ [Visual C++]strcmp()
C++ функция strcmp
C++ strcmp()
C++ Функция strcmp
C++ STRCMP
strcmp C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
28.11.2010, 04:50     Баг strcmp #21
Цитата Сообщение от silent_1991 Посмотреть сообщение
Я на то и сетовал
Так вроде бы так и должно быть, http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{1} = 1, я не прав?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
28.11.2010, 11:33
  #22

Не по теме:

Nameless One, да шучу я, сказал же))) Он считает так же неправильно, как и strcmp у ТСа. Надо же было поглумиться))
P.S. А вообще это откуда - наш препод по терверу как-то рассказывал, как он спросил у потока (вроде экономистов), чему равен арифметический квадратный корень из 1... Так вот его цитата: "Они долго считали, да, очень долго... И потом один выдал: "Нууу... Примерно 0,97 получается""

Nameless One
28.11.2010, 11:51
  #23

Не по теме:

у нас про экономистов в универе тоже анекдоты ходят...

silent_1991
28.11.2010, 11:56
  #24

Не по теме:

Nameless One, Угу, а потом мы удивляемся почему так хорошо и богато живём... А потому что экономисты всё преуменьшить норовят, вон даже корень из 1 на три сотых недобрали...

alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
28.11.2010, 13:09  [ТС]     Баг strcmp #25
Ребята, посмотрите видео, на 50-й секунде на паузе чётко видно, что s содержит "X", str содержит "O".
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
28.11.2010, 13:10     Баг strcmp #26
alexsvk, ага, зато s не содержит '\0'
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
28.11.2010, 13:28  [ТС]     Баг strcmp #27
Цитата Сообщение от Nameless One Посмотреть сообщение
alexsvk, ага, зато s не содержит '\0'
И опять же, на видео видно, что s[0] = буква, s[1]='\0';
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
28.11.2010, 13:31     Баг strcmp #28
Не знаю, видео твое не смотрел, но сам ты написал:
Цитата Сообщение от alexsvk Посмотреть сообщение
Debug:
s[0] = 'X';
s [1] = 'O';
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17188 / 5442 / 337
Регистрация: 30.03.2009
Сообщений: 14,758
Записей в блоге: 26
28.11.2010, 13:36     Баг strcmp #29
alexsvk, ты можешь чётко пояснить, что ты хочешь в конечном итоге? Если нужно определить НЕравенство строк, то вместо

C
1
if (strcmp(str,s) == true)
надо писать

C
1
if (strcmp(str,s))
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
28.11.2010, 13:45  [ТС]     Баг strcmp #30
Evg, а true не годится?

Добавлено через 35 секунд
Цитата Сообщение от Nameless One Посмотреть сообщение
Не знаю, видео твое не смотрел, но сам ты написал:
писал же, что описка была. s[1]='\0';
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
28.11.2010, 13:54     Баг strcmp #31
Цитата Сообщение от alexsvk Посмотреть сообщение
Evg, а true не годится?
С чего и следовало начать:
strcmp возвращает отрицательное число, когда первая строка меньше второй, 0, когда они равны, положительной число, когда первая строка больше второй. Она возвращает не bool, а int. Матчасть надо учить.
Блин, а я ведь спрашивал уже:
Цитата Сообщение от Nameless One Посмотреть сообщение
alexsvk, а теперь скажи, какие значения аргументов у функции strcmp в момент "бага" и какой результат ты от нее ожидаешь (str равна s, str больше s, str меньше s)?
Разве так трудно было сразу четко и ясно ответить?

Цитата Сообщение от alexsvk Посмотреть сообщение
Evg, а true не годится?
Чтобы совсем не было сомнений, скажи, что выдаст эта программа:
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
        std::cout << std::boolalpha << (((int) -1) == true) << std::endl;
        return 0;
}
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
17188 / 5442 / 337
Регистрация: 30.03.2009
Сообщений: 14,758
Записей в блоге: 26
28.11.2010, 13:55     Баг strcmp #32
Цитата Сообщение от alexsvk Посмотреть сообщение
Evg, а true не годится?
Я мог бы ответить на этот вопрос коротко: "нет". Но если тебе действительно интересно понять, почему так (хотя в теме уже несколько раз об этом сказали), то тебе придётся ответить на встречный вопрос: "а с чего ты решил, что годится?"
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
28.11.2010, 22:02  [ТС]     Баг strcmp #33
Цитата Сообщение от Nameless One Посмотреть сообщение
С чего и следовало начать:
strcmp возвращает отрицательное число, когда первая строка меньше второй, 0, когда они равны, положительной число, когда первая строка больше второй. Она возвращает не bool, а int. Матчасть надо учить.
Блин, а я ведь спрашивал уже:Разве так трудно было сразу четко и ясно ответить?


Чтобы совсем не было сомнений, скажи, что выдаст эта программа:
C++
1
2
3
4
5
6
7
#include <iostream>
 
int main()
{
        std::cout << std::boolalpha << (((int) -1) == true) << std::endl;
        return 0;
}
false
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2010, 22:07     Баг strcmp
Еще ссылки по теме:

C++ std::regex : баг на сайте или баг компилятора?
C++ Функция strcmp
C++ strcmp
Strcmp C++
C++ Функция strcmp

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
28.11.2010, 22:07     Баг strcmp #34
Цитата Сообщение от alexsvk
false
И следовательно?..
Yandex
Объявления
28.11.2010, 22:07     Баг strcmp
Ответ Создать тему
Опции темы

Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru