У меня такая вот проблема :
#include <iostream.h>
int main()
{
char a[30],d[]="взять";
int i;
cin >> a;
for (i=0;i>=5;++i) {
if (a[i]==d[i]) cout << "1";}
}
И вот что у меня выходит :
я ввожу взять
выводит 11111
я ввожу взят
выводит 11111
Почему такое происходит???
Проблема в коде
Модератор: Модераторы разделов
-
apacho
- Сообщения: 110
- ОС: MOPSLinux 5.1
Проблема в коде
Окошки не нужны, нужны ПИНГВИНЫ!!!
Слака рулит!!!!!!
Слака рулит!!!!!!
-
crop
- Сообщения: 81
Re: Проблема в коде
Код: Выделить всё
#include <iostream>
using namespace std;
int main() {
char a[30],d[]="взять";
int i;
cout << "Введите строку: ";
cin >> a;
for (i=0;i<5;i++)
if (a[i]==d[i]) cout << "1";
return 0;
}Попробовал только что:
1. Вводим "взять" (без кавычек) - результат 5 единиц
2. Вводим "взят" (без кавычек) - результат 4 единицы
p.s. IDE - Eclipse CDT, компилятор gcc (Cygwin)
p.p.s В С++ я мало что понимаю, я пока только чистый Си осваиваю....
-
Zeus
- Сообщения: 694
Re: Проблема в коде
Небольшая ремарка:
нужно include'ить не <iostream.h>, а <iostream>
Но это к собственно вопросу отношения не имеет.
Такой цикл, как я понимаю, не должен ни разу отрабатывать.
нужно include'ить не <iostream.h>, а <iostream>
Но это к собственно вопросу отношения не имеет.
Код: Выделить всё
for (i=0;i>=5;++i)Такой цикл, как я понимаю, не должен ни разу отрабатывать.
-
Atragor
- Сообщения: 681
- Статус: ...
Re: Проблема в коде
У меня с английским словом работает нормально, с русским та же фигня
Чем ему русские символы не нравятся???
Поправочка: с KOI8-R все работает, с UTF-8 - нет
Поправочка: с KOI8-R все работает, с UTF-8 - нет
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
-
apacho
- Сообщения: 110
- ОС: MOPSLinux 5.1
-
Zeus
- Сообщения: 694
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Проблема в коде
При использовании юникода каждая русская буква занимает 2 байта. Поэтому первые 5 байтов соответствуют первым 2 буквам и началу третьей, которые совпадают.