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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2017, 19:29   #11
PickaBuu
Пользователь
 
Регистрация: 25.05.2017
Сообщений: 16
По умолчанию

TCHAR str[80] = TEXT("itsjeansboi");
Если ввести такую строку, он просто выводит все символы, начиная с 'j'
PickaBuu вне форума Ответить с цитированием
Старый 16.10.2017, 20:08   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

strchr не спортивно для лабы
p51x вне форума Ответить с цитированием
Старый 16.10.2017, 20:10   #13
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Код:
#include <iostream>
#include<tchar.h>
#define _tcout wcout
using namespace std;

int ravnoS(TCHAR* str, TCHAR s)
{
	for (; *str; str++)
		if (s != *str)
			return 0;
	return 1;
}

TCHAR* poiskPstrS1toS2(TCHAR* str, TCHAR s1, TCHAR s2, int& len)
{
	setlocale(0, "rus");

	len = 0;
	TCHAR* p = NULL;

	for (; *str; str++)
		if (*str == s1)
		{
			p = str;
			bool flag = false;
			while(*str !=NULL)
			{
				str++;
				len++;
				if (*str == s2)
				{
					flag = true;
					break;
				}				
			}	
			if(flag ==false)
				return NULL;
			else
				return p;
		}
	return 0;	
}

void main()
{
	int len;
	TCHAR str[80] = L"itsjeansboi";


	TCHAR* pt = poiskPstrS1toS2(str, 'j', 's', len);
		
	for (int i = 0; i <= len; i++)
	{
		_tcout << *pt;
		pt++;
	}

	cin >> len;
}
Я тупил по поводу "_tcout "
ura_111 вне форума Ответить с цитированием
Старый 16.10.2017, 20:11   #14
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Хорошенько тестируй: и когда начало строки есть, а конца нет, и когда конец построки совпадает с концом строки, и когда 2-е разные построки (удовлетворяют условию)....

Хорошее, продуманное тестирование иногда занимает столько же времени как и написание текста программы.
ura_111 вне форума Ответить с цитированием
Старый 16.10.2017, 20:12   #15
PickaBuu
Пользователь
 
Регистрация: 25.05.2017
Сообщений: 16
По умолчанию

Код:
TCHAR str[80] = TEXT("itsjeansboi");
Изменил строку, теперь программа выводит все символы, начиная с 'j', в том числе и ненужные мне.
PickaBuu вне форума Ответить с цитированием
Старый 16.10.2017, 20:14   #16
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Это хорошо!
Оно и должно выводить (а вернее, указывать) на построку больше (т.е. до конца строки)...
У тебя же есть "len".
Зачем оно дано?
(почитай условие задачи)

Посмотри мой код.
ura_111 вне форума Ответить с цитированием
Старый 16.10.2017, 20:21   #17
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

У тебя в задании что-то не понятное по этому поводу...

Смотри, по заданию надо вывести "адрес этой первой найденной подстроки". Но если ты создашь новую строку (для записи "jeans", то адрес будет другим)...

А саму "str" можно менять в функции? Уменьшить до построки?
Обрезать "/0"?
ura_111 вне форума Ответить с цитированием
Старый 16.10.2017, 20:25   #18
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Понимаешь, (в задании сказано) "возвращает адрес".

Что такое "адрес"?

Это указатель на первый элемент... и всё.

А сколько там дальше символов - Бог один знает!
Поэтому выводим пока не NULL или по len
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
C++ Функции! Нужна помощь! Faceless001 Помощь студентам 2 29.05.2009 16:51
Нужна помощь с написанием софтины. TakeThat БД в Delphi 1 10.11.2008 03:35