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

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

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

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

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

Код:

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
Репутация: 4
По умолчанию

держи рабочую прогу...не забудь нажать на весы и повысить мне рейтинг...!!!
Код:

#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, 17:54   #3
Ste
 
Регистрация: 28.10.2010
Сообщений: 4
Репутация: 10
По умолчанию

еще строку с клавиатуры бы считать
Ste вне форума   Ответить с цитированием
Старый 04.11.2010, 23:26   #4
kaljan775
:D
Участник клуба
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Адрес: Казань
Сообщений: 570
Репутация: 31

skype: kaljan775
По умолчанию

Код:

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 вне форума   Ответить с цитированием
Ответ

Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Знак переноса строки в конце строки. 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


22:29.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru