Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> глюк с пробелами 
:(
    Опции темы
fisher05
  Дата 5.12.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2009
Где: Minsk

Репутация: нет
Всего: нет



Видел очень много похожих тем, но там небыло моего глюка (или это моя невнимательность). Суть проблемы:
Есть массив типа char, в него заношу какие-то данные. Но когда просматриваю элемент в массиве после пробела он показывается пробелом О_о. Вот код:
Код

#include <iostream.h>
#include <conio.h>

char b[200],s[1000];
int i,n=10;

int main() {
        b[0] = (char)0;
        b[32] = (char)32;
        b[98] = (char)(98-32);
        cin>>s;
        for(i=0;i<n;i++) {
                if ((int)s[i] == 0) {
                cout<<(int)s[i+1];
                }
        }
        getch();


        return 0;
}
прошу помочь не добавлением других библиотек, желательно без string.h


PM MAIL ICQ   Вверх
sQu1rr
Дата 5.12.2009, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Попробуйте прочитать умные книжки... для чайников
Я понимаю, что вы изучаете, но по стандартам 97(?) года? Попробуйте поновее..
Ладно...
cin>>s;
Тут вы считаваете строку в массив s;
Строка заканчивается символом \0. ПРОБЕЛЫ не считываются. На пробеле в строке запись в массив прерывается ( испольтзуйте cin.getline() к примеру ). Потом вы проверяете строку на соответствие char(0)... зачем? Их там быть не может. Все символы после строки равны нулю, потому что массив объявлен в глобальном пространстве и автоматически заполнен нулями. Вывод: читайте учебник  smile  И это добрый совет
PM MAIL Skype GTalk   Вверх
bsa
Дата 5.12.2009, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



код пробела - 32. Ты же ищешь символ с кодом 0 - конец строки (т.е. не перевод на другую строку '\n', а конец данных в строке). После операции cin >> s, символ следующий за '\0' будет иметь неизвестное значение - т.е. может быть любым. Так как s - глобальная переменная, то по стандарту она зануляется... Т.е. все неинициализированные тобой ячейки будут нулевыми..

Это сообщение отредактировал(а) bsa - 5.12.2009, 22:41
PM   Вверх
fisher05
Дата 5.12.2009, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 19.5.2009
Где: Minsk

Репутация: нет
Всего: нет



спасибо за getline, книжку читал, дошел только до cin smile
PM MAIL ICQ   Вверх
bsa
Дата 5.12.2009, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(fisher05 @  5.12.2009,  22:58 Найти цитируемый пост)
спасибо за getline, книжку читал, дошел только до cin  

- в повороты лучше входить путем вращения руля
- спасибо за руль, книжку читал, дошел только до "Жигулей".

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.