С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162

Указатель на строку: как выводить не всю строку целиком, а конкретную букву

06.07.2013, 19:59. Показов 3587. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программка:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
using namespace std;
void fn_str1(int i,string str1,char *p)
{
    p=&str1[0];
    for(i=0;i<str1.length();++i)
    {
        
        p=&str1[i];
    }
}
 
int main()
{
    int i;
    char *p;
    string str1,str2;
    cin>>str1>>str2;
    p=&str1[0];
    fn_str1(i,str1,p);
}
Как в функции fn_str1 при помощи указателя в цикле
C++
1
2
3
4
5
for(i=0;i<str1.length();++i)
    {
        p=&str1[i];
 
    }
выводить не всю строку целиком, а конкретную букву на которую указывает указатель??? Вывод вроде cout<<str[i] мне не подходит. Заранее спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.07.2013, 19:59
Ответы с готовыми решениями:

Объяснить почему указатель выводит всю строку сразу, а не адрес первого элемента
Всем привет :) Начал изучать сей замечательный язык и появились кое-какие вопросы к гуру! Запутался в указателях... ...

Чем отличаются указатель на строку и константный указатель на строку?
Просто обьясните, как такое возможно? char *a=&quot;fff&quot;; В чем отличие от этого? : const char *a=&quot;fff&quot;; Ведь так и так...

Как в редакторе на с++ перейти на какую то конкретную строку?
У меня операционная система FreeDos 1.2 работаю в среде Borland C++3.0 Отлаживаю код в турбо дебаггере с++ 3.0 по шагам и проблема в том,...

8
292 / 172 / 47
Регистрация: 22.03.2010
Сообщений: 488
06.07.2013, 20:25
Мне кажется, что вы хотите странного;
C++
1
2
3
4
5
for(i=0;i<str1.length();++i)
    {
        p=&str1[i];
        cout << *p << "\n";
    }
1
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 01:00

Не по теме:

Nikko12, на ваш код страшно смотреть.



Добавлено через 10 минут
Хотя бы так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void fn_str1(char *p, int size)
{
    while (size)
    {
        cout << *p;
        ++p;
        --size;
    }
}
 
int main()
{
    char *p;
    string str1;
    cin >> str1;
    p = &str1[0];
    int size = str1.size();
    fn_str1(p, size);
 
    return 0;
}
0
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 10:47  [ТС]
alsav22, А можно узнать в чем страх заключается?

Добавлено через 13 минут
Цитата Сообщение от Hrobak Посмотреть сообщение
Мне кажется, что вы хотите странного;
Что Вы имеет ввиду?
0
292 / 172 / 47
Регистрация: 22.03.2010
Сообщений: 488
07.07.2013, 12:29
1. Если так уж хотите дополнительной переменной, просто создайте переменную типа char и передайте в функцию по ссылке. ИМХО, указатель здесь не нужен.
2. Зачем создавать переменную i в main (), если вы ее используете только в цикле в другой функции. Просто напишите в fn_str1 цикл for (int i=0;...;++i), да и в принципе посимвольно строку я бы по-другому выводил.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 21:11
Цитата Сообщение от Nikko12 Посмотреть сообщение
А можно узнать в чем страх заключается?
В полной нелогичности кода. Создаёте в main() строку и указатель на неё, и передаёте в функцию и указатель и строку. Зачем? Достаточно указателя, для этого, наверное, его и создавали. В функции вы опять (в main() уже делали) присваиваете указателю адрес начала строки, а он его уже имеет. Насчёт i уже написали.
0
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 21:18  [ТС]
alsav22, Когда освою в совершенстве с++ буду писать правильно, а пока бывают и неудачные примеры.

Добавлено через 1 минуту
К тому же я не совсем еще понимаю как работают указатели и функции (я их боюсь использовать, мне кажется без них намного проще).
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 21:24
В С++ есть альтернатива указателям - ссылки.
0
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 21:27  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
В С++ есть альтернатива указателям - ссылки.
До этого я еще не дошел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.07.2013, 21:27
Помогаю со студенческими работами здесь

Как получить целиком всю строку параметров query string (?id1=..&id2=..&id3=..)
как получить целиком всю строку параметров query string к примеру страница с такими параметрами: ...

Как после листинга в ListBox'se, не выделять строку, а только навести мышку и увидеть всю строку
Как показать весь текст в ListBox'se при scroll и наведя мышку? Такая ситуация, я листаю ползунком строки и, попадаются длинные, в окошке...

Найти строку в файле по слову и скопировать строку целиком
Добрый день уважаемые. Собственно в теме вопрос сформулирован. Помогите пожалуйста.

Как выбрать конкретную строку из БД
Здравствуйте, уважаемые! Есть вёрстка страницы, которая выводит подробное описание товара, например. Есть запрос, написанный мною,...

Как прочитать конкретную строку файла?
Добрый день. Столкнулся с задачей реализации изменения содержимого файла. Я придумал, что пользователь введет строку, которую он хочет...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru