Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Evgeny FeiM
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 6
1

Непонятные символы в консоли

21.02.2014, 15:06. Просмотров 846. Ответов 6
Метки нет (Все метки)

Выводит непонятные символы (пики, стрелки), скрин снизу, посмотрите.
Вот сам код:
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
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
 
int main()
{
    char text[80], resultMas[80];
    int i=0, resi=0, lenght=0, countWords=0, maxln, worldcount, b=0;
    
    cout<<"BBEDITb FPA3Y:"<<endl;
    cin.get(text,80);
    cin.ignore(100, '\n');
    
    while(text[i]!='\0') //длинна строки
    {
        i++;
        lenght++;
    }
    cout<<"Lenght: "<<lenght<<endl;
    maxln=lenght;
    for(i=maxln; i>=0; i--) //меняем последовательность слов задом наперед
    {
        if(text[i]==' ')
        {
        if(text[i+1]!=' ')
        {
            b=i;
            while(b<=maxln&&b+1!=' '&&b!='/0')
            {
                worldcount=b+1;
                resultMas[resi]=worldcount;
                cout<<resultMas[resi]<<" ";
                resi++;
                b++;
            } 
        }
        }
    }
}
0
Миниатюры
Непонятные символы в консоли  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.02.2014, 15:06
Ответы с готовыми решениями:

Непонятные символы в консоли
Доброго времени суток! Работаю со строками, перезагружаю операторы, но на...

Непонятные символы при выводе русских символов в консоли
Доброго времени суток, у меня возникла проблема. Когда я ввожу текст с...

Непонятные буквы вместо русских символов в консоли
#include&quot;stdafx.h&quot; #include&quot;windows.h&quot; #include&lt;iostream&gt; #include&lt;stdlib.h&gt;...

Непонятные символы
В общем, сделал функцию.Все работает, но есть одно но: если вводить строку, а...

непонятные символы в строке char
имеется такая функция: char subWord(char s, char s1, int n, int I){ int...

6
DrOffset
8130 / 4713 / 1152
Регистрация: 30.01.2014
Сообщений: 7,683
21.02.2014, 15:19 2
C++
1
while(b<=maxln&&b+1!=' '&&b!='/0')
Слэш в другую сторону
Надо '\0'.

Да и вообще с алгоритмом чего-то не то. Задача-то какая?
Почему индекс сравнивается с пробелом и нулем?
1
Evgeny FeiM
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 6
21.02.2014, 18:46  [ТС] 3
DrOffset, спасибо, задачка в том что бы в строке переставить слова задом наперед (именно слова, не буквы). Я решил пойти методом пробелов, но за условием задачки пробелов может быть 2, 1 или даже несколько. Поэтому такие индексы.
0
DrOffset
8130 / 4713 / 1152
Регистрация: 30.01.2014
Сообщений: 7,683
21.02.2014, 18:58 4
Цитата Сообщение от Evgeny FeiM Посмотреть сообщение
Поэтому такие индексы
Так может быть значение строки (символ по индексу) надо сравнивать, а не сам индекс?
0
Evgeny FeiM
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 6
21.02.2014, 19:07  [ТС] 5
Ноу, значение строки по этому индексу это буква. Короче, вот как работает мой алгоритм: Обрабатывается строка от конца. Если находит пробел, считываются последующие буквы после пробела и записываются в новую строку, после бежим дальше по строке от места последнего пробела. Алгоритм такой, что не будет выводить первое слово первой строки, перед ним попросту нету пробела. Но если так, то почему не выводит прога предыдущие слова?
В примере строка: feim gonna hate
Должно вывести: hate gonna, а оно вообще никак не выводит...
0
DrOffset
8130 / 4713 / 1152
Регистрация: 30.01.2014
Сообщений: 7,683
21.02.2014, 19:20 6
Цитата Сообщение от Evgeny FeiM Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
b=i;
while(b<=maxln&&b+1!=' '&&b!='\0')
{
    worldcount=b+1;
    resultMas[resi]=worldcount;
    cout<<resultMas[resi]<<" ";
    resi++;
    b++;
}
Похоже намеками не получается.
Вот смотри: у тебя i - это индекс в строке. Тип int, b - тоже тип int.
А потом ты перед циклом while присваиваешь индекс переменной b.
А потом в цикле b проверяешь на неравенство пробелу и нулю. Но b - это же индекс i! Все еще не видишь ничего странного?
Как может быть индекс равен или не равен пробелу?
0
Evgeny FeiM
0 / 0 / 0
Регистрация: 20.02.2014
Сообщений: 6
21.02.2014, 19:24  [ТС] 7
DrOffset, всё, теперь ясно, спасибо!
0
21.02.2014, 19:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2014, 19:24

Непонятные символы в строке из char
Добрый вечер. Имеется данный код: char szResponse; recv(clientSock,...

На выходе выдаются непонятные символы
Задание: написать программу которая разворачивает запись типа a-z в строке s в...

Непонятные символы при выводе
Я уже такую фигню много раз наблюдал типа если не поставить '\0' или убрать при...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru