Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2017, 20:33   #31
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Нет. Строка храниться в памяти компьютера уже как массив. И соответственно доступ к элементам её по индексу.


1.jpg


А что такое тогда
s1[i] == 'å'
?



Задание 1: выведи символ (из строки) 5-й и 7-й и 12-й на экран.
(вариант "%s" не подойдёт. А что надо для отдельного символа?)

Задание 2: Дана строка. Если 5-й символ в строке 'e', тогда вывести Да, иначе - Нет.

___________________________________ ____________

Что касается
Код:
он
уходил 
далеко МАСИВ
Строки/ буквы хранятся вот как:


2.jpg


обрати внимание на (в некоторых случаях) функцию копирования в "string".
p.s.: в моей программе я применил 1-й подход .
ura_111 вне форума Ответить с цитированием
Старый 05.12.2017, 20:41   #32
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Ты определился, по какому способу будешь решать?

К предыдущему моему рисунку:
1) если ты будешь решать по 3-му способу, тогда обрабатывай "s" и больше тебе ничего не надо. Доступ к каждому элементу типа такого s[0]=='е'....

2) а если будешь делить строку на отдельные слова, тогда обрати внимание на "s1" ("s2") на рисунке, - как там хранятся слова... И тогда поиск нужен будет .. например s1[2][0]=='е'....
т.е. как массив массивов....

Зато здесь вывести на экран соответствующее слово очень просто
Код:
...%s", s1[2]
- и вся любовь.

Последний раз редактировалось ura_111; 05.12.2017 в 20:44.
ura_111 вне форума Ответить с цитированием
Старый 05.12.2017, 20:48   #33
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

Код:
#include <iostream>
#include<string.h>
#include<windows.h>
using namespace std;

int main()
{
system("cls");
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	int i = 0;

		string s1;
	getline(cin,s1);

	for (i = 0; i < s1.size()-2; i++)
	{
		if (s1[i] == 'å' && s1[i+1] == 'ò' && s1[i+2] == 'ü')
		{
			printf("%d\n",i);
			
		cout<<s1.substr(i,s1.size());
			}
			
			
			
			
		}
	
	return 0;	
	}
я сделал так..у меня вивод только еть,подскажи как сделать щоб от пробела виводило?
Андрій00,2 вне форума Ответить с цитированием
Старый 05.12.2017, 20:49   #34
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Андрій00,2 Посмотреть сообщение
(s1[i] == 'å' && s1[i+1] == 'ò' && s1[i+2] == 'ü')
ето - е,т,ь,просто при копіюванні чомусь таке вибиває
Андрій00,2 вне форума Ответить с цитированием
Старый 05.12.2017, 20:54   #35
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

вот задание
Код:
#include <iostream>
#include<string.h>
using namespace std;

int main()
{
	int i = 0;

	string s1="ïâàåòünïðï nâåòüóó ííííí åòüââââ";
	// 1 çàâä
	cout<<s1[6]<<"\n";
	cout<<s1[8]<<"\n";
	cout<<s1[13]<<"\n";
	//2 çàâä 
	if(s1[6]=='e')
	{
		cout<<"da";
	}
	else
	cout<<"net";
}
Андрій00,2 вне форума Ответить с цитированием
Старый 05.12.2017, 21:03   #36
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

прикол в тім,що я незнаю яка строка там буде,бо вводити потрібно при запуску програми,якщоб ця строка була вбудована на початку програми,то це було б easy
Андрій00,2 вне форума Ответить с цитированием
Старый 05.12.2017, 21:06   #37
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Пример то для тебя.

Я чувствую у тебя база слабовата.
Попробуй придумать себе серию задач на строки (или в учебнике посмотри или на форуме поищи) и их порешай.
Иначе ты ничего не сможешь сделать.

_________________________________

По поводу твоей задачи, могу дать подсказки:

1.jpg

2.jpg
ura_111 вне форума Ответить с цитированием
Старый 05.12.2017, 21:09   #38
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

как вернутьса до пробела?
p.s у меня база слабоватая потому шо только 2 месяця етим занимаюсь
Андрій00,2 вне форума Ответить с цитированием
Старый 05.12.2017, 21:14   #39
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Если ты не знаешь какая строка будет (читай сколько слов будет), тогда 1-й вариант написание программы правильный...
В принципе можно массив стринг сделать очень-очень большим...
Либо перейти на динамическое распределение памяти: посчитать кол-во пробелов (' ') - это кол-во слов и создать динамически массив...

__________________________

Если ты не знаешь какая строка будет (читай какие разделительные знаки будут между словами: пробел, точка, запятая, восклицательный знак....), тогда надо предусмотреть все варианты...
ura_111 вне форума Ответить с цитированием
Старый 05.12.2017, 21:16   #40
Андрій00,2
Пользователь
 
Регистрация: 24.10.2017
Сообщений: 34
По умолчанию

ладн,спасибо огромное)буду пробувать
Андрій00,2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в типе данных 'String' and 'System::String' shilovec5377 Общие вопросы C/C++ 2 16.06.2014 16:07
Как преобразовать SIZE_T в string (System String^) calypso Общие вопросы C/C++ 0 09.12.2013 12:43
ошибка [C++ Error] string.h(5): E2344 Earlier declaration of 'String' Pein95 C++ Builder 2 02.04.2013 21:18
Как получить адрес String строки или преобразовать String madboy4ik Общие вопросы по Java, Java SE, Kotlin 6 15.01.2010 11:57