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

Массив - C++

Восстановить пароль Регистрация
 
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
11.11.2011, 14:09     Массив #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
int main()
{
 char a[]="Privet Kak dela??? norm)";//в массиве 23 символа
 for(int i=0;i<a[11];i++)//тут указываю чтобы он проверял только Privet Kak поэтому ставлю 11
 {
  if(a[i]==' ') a[i]='-';
 }
 cout<<a;
 getch();
}
Но он почему то проверяет до конца... почему так происхожит
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2011, 14:09     Массив
Посмотрите здесь:

C++ Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W
C++ Задать массив вещественных чисел и вставить в исходный массив число
C++ Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W
C++ задача записать в массив отрицательные элементы матрицы в массив и вывести их
Сформировать массив А из четных элементов исходного массива, а массив В - из нечетных C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
11.11.2011, 14:13     Массив #2
C++
1
cout << sizeof(a) / sizeof(char);
разве 23?

Добавлено через 1 минуту
Цитата Сообщение от GoldDragon Посмотреть сообщение
for(int i=0;i<a[11];i++)
C++
1
for(int i=0;i<11;i++)
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
11.11.2011, 14:20  [ТС]     Массив #3
Цитата Сообщение от PointsEqual Посмотреть сообщение
for(int i=0;i<a[11];i++)
Зачем тогда использоваться всякие Lengh, sizeof, strlen, если можно просто
for(int i=0;i<a[11];i++), это глюк какой чтоли...самое главное даже ошибки не какой не вылазит что так не ползоваться

Добавлено через 23 секунды
С нулём 25 без нуля 24
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.11.2011, 14:20     Массив #4
Цитата Сообщение от GoldDragon Посмотреть сообщение
i<a[11]
Ну, он и будет проверять до числового представления 12-го символа в строке. Что, кстати равно 64 в шестнадцатеричной по таблице ascii. Но, т.к. с++ не проверяет переполнения, то ошибки не возникает. А вот Си послал бы вас лесом с ошибкой сегментирования.
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
11.11.2011, 14:23  [ТС]     Массив #5
Цитата Сообщение от soon Посмотреть сообщение
Ну, он и будет проверять до числового представления 12-го символа в строке.
Не до 12 можете там поставить цифру 1, а в массиве выше где тоько присваиваете можете написать хоть целую лекцию, так вот он будет проерят до самого последнего
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.11.2011, 14:25     Массив #6
Буква #12 в вашей строке - d. По таблице ascii это 64 или 100 в десятеричной. Он вам и прогоняе 100 итераций.
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
11.11.2011, 14:26  [ТС]     Массив #7
Всё решил проблему всем спасибо!
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
11.11.2011, 14:26     Массив #8
GoldDragon, вы ответы внимательно читаете?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2011, 14:28     Массив
Еще ссылки по теме:

Массив: Переписать элементы одномерного массива A, попадающие в интервал [2, 6], в массив B. C++
Массивы и указатели (нужно передать массив I[10] в массив J[10] в обратной последовательности) C++
Заполнить массив строк из файла. Массив заполняется, но выводится не корректно C++

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

Или воспользуйтесь поиском по форуму:
soon
11.11.2011, 14:28     Массив
  #9

Не по теме:

Спасибо, поржал. Удачи ТС-у

Yandex
Объявления
11.11.2011, 14:28     Массив
Ответ Создать тему
Опции темы

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