Проблема в коде

Модератор: Модераторы разделов

apacho
Сообщения: 110
ОС: MOPSLinux 5.1

Проблема в коде

Сообщение apacho »

У меня такая вот проблема :
#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

Почему такое происходит???
Окошки не нужны, нужны ПИНГВИНЫ!!!
Слака рулит!!!!!!
Спасибо сказали:
crop
Сообщения: 81

Re: Проблема в коде

Сообщение crop »

Код: Выделить всё

#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: Проблема в коде

Сообщение Zeus »

Небольшая ремарка:
нужно include'ить не <iostream.h>, а <iostream>
Но это к собственно вопросу отношения не имеет.

Код: Выделить всё

for (i=0;i>=5;++i)

Такой цикл, как я понимаю, не должен ни разу отрабатывать.
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: Проблема в коде

Сообщение Atragor »

У меня с английским словом работает нормально, с русским та же фигня :unsure: Чем ему русские символы не нравятся???

Поправочка: с 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

Re: Проблема в коде

Сообщение apacho »

for (i=0;i>=5;++i)
Описка
Окошки не нужны, нужны ПИНГВИНЫ!!!
Слака рулит!!!!!!
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: Проблема в коде

Сообщение Zeus »

Atragor писал(а):
05.08.2007 20:20
У меня с английским словом работает нормально, с русским та же фигня :unsure: Чем ему русские символы не нравятся???

Поправочка: с KOI8-R все работает, с UTF-8 - нет

В UTF-8 не латинские символы - двухбайтовые.
Спасибо сказали:
v04bvs
Сообщения: 636
ОС: Debian GNU/Linux

Re: Проблема в коде

Сообщение v04bvs »

При использовании юникода каждая русская буква занимает 2 байта. Поэтому первые 5 байтов соответствуют первым 2 буквам и началу третьей, которые совпадают.
Спасибо сказали: