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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2010, 17:45   #1
Ste
 
Регистрация: 28.10.2010
Сообщений: 4
Вопрос строки

задача: заменить в строке символы = на :=
я так понимаю сначала надо найти номера всех символов "=" .

Код:
int main ()
{
string str,str2;
cout<<"input string one"<<endl;
getline(cin,str);
int с=str.lenght(),r,i=0;
do { r=str.find("=",i), cout<<r<<endl , i++;} while (i<c)
}
Проблема: на экран выводит номер первого символа =, потом опять его номер и так пока не встретиться следующий символ =, в итоге получается примерно так 2 2 2 2 2 4 4 4 4 4 4 6. А должно 2 4 6. Что я делаю не так?
PS помогите исправить только этот кривой вывод на экран.
Ste вне форума Ответить с цитированием
Старый 28.10.2010, 18:51   #2
JeyKip
Форумчанин
 
Регистрация: 18.09.2009
Сообщений: 133
По умолчанию

держи рабочую прогу...не забудь нажать на весы и повысить мне рейтинг...!!!
Код:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;

void main ()
{
	setlocale (0,"");
	int k = 0,count = 0;
	char str_1 [] = "ellips=2,circle=3,rectangle=4";
	for (int i = 0; i<strlen(str_1); i++)
	{
		if (str_1[i] == '=')
			k++;
	}
	char * str_2 = new char [strlen(str_1)+k];
	k = 0;
	for (int i = 0; i<strlen(str_1); i++)
	{
		
		if (*(str_1+i) == '=')
		{
			*(str_2+k) = ':';
			*(str_2+k+1) = '=';
		    k++;
			count++;
		}
		*(str_2+k) = str_1[i];
		k++;
	}
for (int i = 0; i<strlen(str_1)+count; i++)
	cout<<*(str_2+i);
	getch ();
}
JeyKip вне форума Ответить с цитированием
Старый 04.11.2010, 16:54   #3
Ste
 
Регистрация: 28.10.2010
Сообщений: 4
По умолчанию

еще строку с клавиатуры бы считать
Ste вне форума Ответить с цитированием
Старый 04.11.2010, 22:26   #4
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Код:
char str_1 [] = "ellips=2,circle=3,rectangle=4";
меняете на
Код:
string str_1;
getline(cin,str_1);
я предлагаю так

Код:
char text[100];
cin.getline(text,sizeof(text),'\n');
kol=strlen(text);

for(int i=0;i<kol;i++){
	if (text[i]=='='){
		for (int k=kol+1;k>i;k--){
			text[k]=text[k-1];

		}
		text[i]=':';
		kol++;
		i++;
	}
}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знак переноса строки в конце строки. Kalika Microsoft Office Access 2 12.09.2010 11:27
Дбавление новой строки, после строки с подходящими параметрами RailOS Microsoft Office Excel 5 18.08.2010 10:12
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27