Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
#1

Записать текст в массив - C++

16.08.2012, 16:16. Просмотров 1870. Ответов 16
Метки нет (Все метки)

хочу скрипт , которая пишет предложение сверху вниз . надо присвоить предложение в массив . вот такой код :
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
main()
{
cout << "Enter text : ";
char string[];
cin>> string[];
 
int i = 0;
int b = sizeof(string);
while(i<b){
cout << string[i]<<endl;
i++;
}
cin.get();
}
но не получается , в этих строках ошибка :
C++ (Qt)
1
2
char string[];
cin>> string[];
если сделать вот так , то всё получится . но тут готовое предложение . а я хочу писать предл. в прогу , а он сам сувал ее в массив .
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
main()
{
cout << "Enter text : ";
char string[] = "Hello!";
cout<<endl;
 
int i = 0;
int b = sizeof(string);
while(i<b){
cout << string[i]<<endl;
i++;
}
cin.get();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2012, 16:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Записать текст в массив (C++):

Записать текст в массив из файла - C++
Подскажите пожалуйста как реализовать такое : нужно записать в массив текст из файла , который расположен между 2-й и 4-й запятой ( в...

Записать текст с клавиатуры в массив - C++
вот сам решил задачу решить,задуманую мной..существует массив а вводить с клавиатуры слова и записать в нее...но что то у меня цикл...

Как введеный текст записать в массив - C++
Помогите введеный текст записать в массив. заранее спасибо.

Записать текст из файла в двумерный массив - C++
Добрый день. Нужно загрузить текст из файла в двумерный массив. Например, текст вот такой dghgh sfhgsghf shshghgjsfjf ...

записать текст в матрицу по строкам, а затем переписать по спирали от центра. Прочитать зашифрованный текст - C++
Зашифровать текст следующим образом: записать его в матрицу по строкам, а затем переписать по спирали от центра. Прочитать зашифрованный...

Дан текст программы на С++...Записать в выходной файл текст программы без комментариев - C++
( структуры и текстовые файлы)– Чтение данных в массив структур должно производиться из входного текстового файла. Дан текст...

16
KostyaKulakov
Заблокирован
16.08.2012, 16:23 #2
без ввода пользователя. массив уже задан в коде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
int main()
{
    cout << "Enter text : ";
    char string[] = "Hello!";
    cout<<endl;
 
    int i = 0;
    int b = sizeof(string);
 
    for(int i=0; string[i]; i++)
    cout << string[i]<<endl;
 
    cin.get();
}
тут пользователь сам должен вписать слово. над оформление сами поработаете.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{
    cout << "Enter text : ";
    char string[1000];
 
 
    cout<<endl;
 
    cin.getline(string, 1000);
 
    for(int i=0; string[i]; i++)
    cout << string[i]<<endl;
 
    cin.get();
}
0
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
16.08.2012, 16:23  [ТС] #3
проблема не в цикле . посмотрите на первый скрипт
0
KostyaKulakov
Заблокирован
16.08.2012, 16:26 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Enter text : ";
    char string[1000];
 
    cin.getline(string, 1000);
 
    int i = 0;
 
    while(i<string[i])
    {
        cout << string[i]<<endl;
        i++;
    }
}
Добавлено через 43 секунды
поправил его вверхний код. но заместо while можно было бы использовать цикл for это было бы компактнее
1
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
16.08.2012, 16:28  [ТС] #5
спасибо !! а зачем с WHILE не получалось ? там выходили какие-то значки через WHILE . а через FOR все поехало
0
KostyaKulakov
Заблокирован
16.08.2012, 16:30 #6
проблема была в том. что максимальный размер массива 1000. а я вводил только 3 буквы. те sizeof определял вроде сколько там всего символов. а правильнее делать цикл string[i] вобщем кто знает тот поймёт. посмотри все коды которые я тут писал думаю разберёшься

Добавлено через 49 секунд
вот код с циклом while. я его переводил в верхнем посте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    cout << "Enter text : ";
    char string[1000];
 
    cin.getline(string, 1000);
 
    int i = 0;
 
    while(i<string[i])
    {
        cout << string[i]<<endl;
        i++;
    }
}
0
Leomana
59 / 59 / 5
Регистрация: 29.06.2012
Сообщений: 188
16.08.2012, 16:31 #7
C++
1
2
3
char string[];// так писать нельзя, нужно тогда указывать размер
 
cin>> string; // и писать так
1
cmath
Модератор
2444 / 1685 / 134
Регистрация: 11.08.2012
Сообщений: 3,286
Завершенные тесты: 6
16.08.2012, 16:39 #8
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
while(i<string[i])
Извиняюсь. Не подскажите что ваша программа делает в этом месте? Просто я таких выражений не видел Если я правильно понял, то вы сравниваете целое число i с i-тым символом строки. Это как?
Я новичок многого не знаю.
0
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
16.08.2012, 16:40  [ТС] #9
спасибо KostyaKulakov ! я знаю , что вопросы надоели мои , но плиз ответьте на еще один вопрос , как там while(i<string[i]) ? разве string[i] не буква ? обясните мне етот момент если не трудно , я новичок
0
KostyaKulakov
Заблокирован
16.08.2012, 16:44 #10
Цитата Сообщение от Hydrogen Посмотреть сообщение
Извиняюсь. Не подскажите что ваша программа делает в этом месте. Просто я таких выражений не видел Если я правильно понял, то вы сравниваете целое число i с i-тым символом строки. Это как?
Я новичок много не знаю.
максимальное значения массива. попрактикуйтесь в массивах сами увидите. такую запись используют если неясен размер массива. а если размер массива был бы известен то запис имела такое значения while(i<string[30]) //30 - это к примеру

Добавлено через 3 минуты
Цитата Сообщение от VaGa Посмотреть сообщение
спасибо KostyaKulakov ! я знаю , что вопросы надоели мои , но плиз ответьте на еще один вопрос , как там while(i<string[i]) ? разве string[i] не буква ? обясните мне етот момент если не трудно , я новичок
в массиве есть ячейки памяти которые забивают туда данные те. расспишу как пользователь забивает массив a[] = {a, b, c, d, f, g, '\0'}; каждая буква занимает свою ячейку в памяти и кода мы обращаемся к массиву например a[2] мы обращаемся ко 2 ячейки в памяти те к b. думаю понятно. хоть это символ хоть буква она есть в памяти и обращения к ней идёт. наверно будет вопрос. зачем '\0' - если мы не поставим то в нашем массиве будет мусор. 0 обозначает логический конец массива
2
cmath
Модератор
2444 / 1685 / 134
Регистрация: 11.08.2012
Сообщений: 3,286
Завершенные тесты: 6
16.08.2012, 16:46 #11
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
while(i<string[i])
{
cout << string[i]<<endl;
i++;
}
Не лучше ли это заменить на
C++
1
2
3
4
while(string[i]!='\0')
{
cout <<string[i]<<endl; i++;
}
1
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
16.08.2012, 16:48  [ТС] #12
спасибо , понатненько ) хотя не понял как i<string[i] , наверное следует просто запомнить
0
KostyaKulakov
Заблокирован
16.08.2012, 16:50 #13
Цитата Сообщение от Hydrogen Посмотреть сообщение
Не лучше ли это заменить на
C++
1
2
3
4
while(string[i]!='\0')
{
cout <<string[i]<<endl; i++;
}
ваше право. кому как удобно тот так и пишет. некто некого не заставляет. программист свободная птица куда захочет туда и полетит.

Добавлено через 1 минуту
Цитата Сообщение от VaGa Посмотреть сообщение
спасибо , понатненько ) хотя не понял как i<string[i] , наверное следует просто запомнить
спросите у более опытных людей. я просто не так давно начал заниматься программированием, месяц назад всеголиш. так, что я не компетентен в этом вопросе объяснил как мог
0
VaGa
5 / 0 / 1
Регистрация: 14.08.2012
Сообщений: 28
16.08.2012, 16:50  [ТС] #14
Цитата Сообщение от Hydrogen Посмотреть сообщение
Не лучше ли это заменить на
C++
1
2
3
4
while(string[i]!='\0')
{
cout <<string[i]<<endl; i++;
}
вот ето уже понятно как
0
Leomana
59 / 59 / 5
Регистрация: 29.06.2012
Сообщений: 188
16.08.2012, 16:56 #15
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
максимальное значения массива. попрактикуйтесь в массивах сами увидите. такую запись используют если неясен размер массива. а если размер массива был бы известен то запис имела такое значения while(i<string[30]) //30 - это к примеру

Добавлено через 3 минуты


в массиве есть ячейки памяти которые забивают туда данные те. расспишу как пользователь забивает массив a[] = {a, b, c, d, f, g, '\0'}; каждая буква занимает свою ячейку в памяти и кода мы обращаемся к массиву например a[2] мы обращаемся ко 2 ячейки в памяти те к b. думаю понятно. хоть это символ хоть буква она есть в памяти и обращения к ней идёт. наверно будет вопрос. зачем '\0' - если мы не поставим то в нашем массиве будет мусор. 0 обозначает логический конец массива
Я блин тоже видимо новичок.. и ни хрена не понимаю смысла этой строки
а при обращении к a[2] мы обращаемся к 3 ячейке 'c'

Добавлено через 3 минуты
Цитата Сообщение от KostyaKulakov Посмотреть сообщение
ваше право. кому как удобно тот так и пишет. некто некого не заставляет. программист свободная птица куда захочет туда и полетит.

Добавлено через 1 минуту


спросите у более опытных людей. я просто не так давно начал заниматься программированием, месяц назад всеголиш. так, что я не компетентен в этом вопросе объяснил как мог
мне кажется лучше писать всё таки читабельный код,
C++
1
while(string[i]!='\0')
тут сразу понятно о чем речь идет..
и мне интересно где вы нашли такую строку
C++
1
while(i<string[i])
?
1
16.08.2012, 16:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2012, 16:56
Привет! Вот еще темы с ответами:

Текст из Edit1 записать в Label1 - C++
Здравствуйте. Есть одна форма, в ней содержится поле Label1 . Открываю форму 2- в ней пишу в Edit1 какой-то текст, жму кнопку- Принять. По...

Записать текст из консоли в файл - C++
Написать программу выводящую текст в файл (system(&quot;echo text &gt;&gt; text.txt&quot;) не подходит, так как пользователь сам должен вводить текст). ...

Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив - C++
ввести двумерный массив I . найти номера столбцов с положительными элементами и записать их в одномерный массив, отобразить его на экране. ...

Массив: Все элементы массива, кратные трем, записать в одномерный массив. - C++
Дан двумерный массив размером n x n? заполненный целыми числами. Все его элементы кратные трем, записать в одномерный массив.


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

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

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