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

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

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

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

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

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

Здравствуйте. Помогите мне с таким заданием. Вообщем есть массив строк и есть некоторый отрезок в этом массиве , скажем с 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 в 00:11.
proag вне форума Ответить с цитированием
Старый 29.01.2011, 00:21   #2
hotcooler17
Пользователь
 
Регистрация: 06.01.2009
Сообщений: 34
По умолчанию

Код:
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 в 00:26.
hotcooler17 вне форума Ответить с цитированием
Старый 29.01.2011, 09:36   #3
proag
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 15
По умолчанию

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

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

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

спасибо за ответы. Вот такое еще задание : необходимо показать номера всех совпадений символа 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 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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