Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 29.01.2011, 00:01   #1
proag
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
Репутация: 10
По умолчанию Вопрос по строкам

Здравствуйте. Помогите мне с таким заданием. Вообщем есть массив строк и есть некоторый отрезок в этом массиве , скажем с n по m и нужно записать данный отрезок в другой массив. Вот что у меня получилось:

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

const int size = 100;
void main()
{
setlocale(LC_ALL, "Russian_Russia.1251");
char array1[size], array2[size];
int n, m, temp, i = 0;
cout<<"Введите строку:";
cin>>array1;
cout<<"Введите m и n:\n";
cin>>m>>n;
if(m>n)
{
	temp = m;
	m = n;
	n = temp;
}
cout<<array1<<endl;
while(m <= n)
{
cout<<array1[m];
array2[i] = array1[m]; // тут должно копировать символ в новую строку
m++;
i++;
}
cout<<endl;
cout<<array2;
cout<<endl;
}
Вообщем оно вроде копирует, но в конечном итоге выводит какую-то муть(( помогите

Последний раз редактировалось ACE Valery; 29.01.2011 в 01:11.
proag вне форума   Ответить с цитированием
Старый 29.01.2011, 01:21   #2
hotcooler17
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 34
Репутация: 12
По умолчанию

Код:
while(m <= n)
{
   cout<<array1[m];
   array2[i++] = array1[m++]; // тут должно копировать символ в новую строку
}

   array2[i] = '\0'; // <========   Учите матчасть.

cout<<endl;
cout<<array2<<endl;
}
и еще (но вот тут могу быть не прав)
Код:
strcmp_s(array2,n-m,&array1[m]);

Последний раз редактировалось hotcooler17; 29.01.2011 в 01:26.
hotcooler17 вне форума   Ответить с цитированием
Старый 29.01.2011, 10:36   #3
proag
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
Репутация: 10
По умолчанию

Код:
array2[i++] = array1[m++]
Спасибо.Можете объяснить как работают i++ и m++ в квадратных скобках? Оно то выдает все верно, но не понятно почему сначала работает с array1[i], а потом идет команда i++
proag вне форума   Ответить с цитированием
Старый 29.01.2011, 10:41   #4
coNsept
Участник клуба
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Адрес: Republic of Moldova
Сообщений: 716
Репутация: 44

skype: mr.kernighan
По умолчанию

Цитата:
Можете объяснить как работают i++ и m++ в квадратных скобках?
array2[i++] = array1[m++];
array2[i] = array1[m]; i++; m++;
То есть сначала выполниться присвоение значения и только потом произойдет инкрементирование на следующий элемент.
А вообще существует еще функция char *strstr(char * str1, const char * str2); // Поиск подстроки в строке, эт так если не знал.

Последний раз редактировалось coNsept; 29.01.2011 в 10:51.
coNsept вне форума   Ответить с цитированием
Старый 29.01.2011, 19:57   #5
proag
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
Репутация: 10
По умолчанию

спасибо за ответы. Вот такое еще задание : необходимо показать номера всех совпадений символа s в строке array1:
Код:
#include <iostream>
#include <stdlib.h>
#include <string.h>
using namespace std;
void main()
{
	setlocale(LC_ALL, "Russian_Russia.1251");
	char array1[100], s;
	int i = 0, n = 0;
	cout<<"Введите строку:";
	cin.getline(array1, sizeof(array1));
	cout<<"Ввести символ для поиска в строке:";
	cin>>s;
while(array1[i] != '\0')
{
if(array1[i] == s)
{
	n++;
	cout<<"Номер совпадения: "<<n<<" в строке под индексом "<<i<<endl;
}
i++;
}
}
Есть еще варианты сделать то же самое , но через функции работы со строками? Можно ли сделать через strchr() или strcmp()? Я пробовал, но не вышло:rolleyes.
proag вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по строкам в паскале Валисий Помощь студентам 2 29.12.2010 23:48
Вопрос по строкам Шурик Общие вопросы C/C++ 3 10.12.2010 23:49
Вопрос по строкам (Visual c++) JOFRIF Visual C++ 13 23.07.2009 13:22
вопрос по строкам в паскале NEMO1991 Паскаль 2 07.06.2009 13:14
вопрос по строкам CraZZy RabbIt Общие вопросы Delphi 4 21.04.2009 19:00


13:27.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.