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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2010, 17:52   #1
welcomeTo
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 43
Вопрос Вопрос по c#(программа несложная, думаю и программисты с++ легко разберутся в синтаксисе)

здравствуйте. делаю лабу, не могу разобраться в чем проблема.. понимаю что код написанный мною ущербный, но все же ,имхо, он должен работать .

Собственно прошу помочь

Задание : Отредактировать строку, заменяя все многоточия точками, а точки восклицательными знаками.

Вот что я уже сделал (помоему должно работать,но не работает):

Код:
Код:
private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text ="";
            string s;
            s = textBox1.Text;
            int i=0;
            do
            {
                if (s[i] == '.' && s[i + 1] == '.' && s[i + 2] == '.')
                {
                    s.Remove(i+1, 2);
                    continue;i++;
                }
                if (s[i] == '.') s.Replace('.', '!');
                    i++;
            } while (i == s.Length);
            //string b;
            //b = s.Replace(".", "!");
            //b = s.Replace("...", ".");
           
            richTextBox1.Text = s;
        }

Последний раз редактировалось Stilet; 20.11.2010 в 18:15.
welcomeTo вне форума Ответить с цитированием
Старый 20.11.2010, 18:02   #2
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

На первый взгляд ошибки тут:
1) Наверное все-таки не while (i == s.Length).
2) Replace('.','!') заменит все . в строке на !, а не только первое вхождение.
still_alive вне форума Ответить с цитированием
Старый 20.11.2010, 18:06   #3
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Я бы как нибудь так:
Код:
private void button1_Click(object sender, EventArgs e)
{
      string s = textBox1.Text;
      s.push_back(' ');
      s.push_back(' ');
      
      for(int i=0; i<s.Length()-2; i++)
      {
             if(s.at(i) == '.' && s.at(i+1) == '.' && s.at(i+2) == '.')
             {
                    s.Remove(i);
                    s.Remove(i);
              }
              else if(s.at(i) == '.')
                    s.at(i) = '!';
      }

      s.pop_back();
      s.pop_back();
      richTextBox1.Text = s;
}
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.11.2010, 18:33   #4
welcomeTo
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 43
По умолчанию

still_alive
Спасибо)
=======
Syuf
Благодарю, а что за метод s.at() ?
с циклом фор я пробовал , не получалось .. ошибка в (i+1) , (i+2) ..счетчик цикла нельзя трогать
welcomeTo вне форума Ответить с цитированием
Старый 20.11.2010, 18:47   #5
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
Благодарю, а что за метод s.at()
То же, что и s[i], но проверяет значение на выход из дапозона.
Цитата:
с циклом фор я пробовал , не получалось .. ошибка в (i+1) , (i+2) ..счетчик цикла нельзя трогать
???
Не может быть, его тут никто не трогает. Киньте ошибки, если не трудно.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.11.2010, 19:34   #6
welcomeTo
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 43
По умолчанию

хотя нет) извиняюсь) нормально сейчас все, ошибок не выдает. ТОлько вот программа все равно не работает . переделал код под c# :
Код:
richTextBox1.Text = "";
            string s;
            s = textBox1.Text;

            s.PadRight(s.Length + 2);
            for (int i = 0; i < s.Length - 2; i++)
            {
                if (s[i] == '.' && s[i + 1] == '.' && s[i + 2] == '.')
                {
                  s=s.Remove(i, 2);
                 
                }
                else if (s[i] == '.')

                   s=s.Remove(i, 1);
               s=s.Insert(i, "!");
                
                
            }
            s=s.Trim();
            richTextBox1.Text = s;
        }

была ошибка в " s[i]='!' ", но это бог с ним, я заменил на ремув-инсерт, запустил приложение, нажал кнопку и....зависло .. не ругается ни на что, просто зависает..зациклился видимо где-то ..

From Stilet: А что код оформить правильно клепки не хватает?

Последний раз редактировалось Stilet; 20.11.2010 в 19:56.
welcomeTo вне форума Ответить с цитированием
Старый 20.11.2010, 19:55   #7
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Заменятель, кстати, - тоже нелегкая профессия.
Код:
richTextBox1.Text = "";
string s;
s = textBox1.Text;

s.PadRight(s.Length + 2);
for (int i = 0; i < s.Length - 2; i++)
{
if (s[i] == '.' && s[i + 1] == '.' && s[i + 2] == '.')
{
s=s.Remove(i, 2);

}
else if (s[i] == '.')
{
s=s.Remove(i, 1);
s=s.Insert(i, "!"); // Их тута целых две
}

}
s=s.Trim();
richTextBox1.Text = s;
}
Дальше не смотрел.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 20.11.2010, 20:23   #8
welcomeTo
Пользователь
 
Регистрация: 27.05.2010
Сообщений: 43
По умолчанию

спасибо огромное юмор про заменятеля не понял(
welcomeTo вне форума Ответить с цитированием
Старый 20.11.2010, 20:45   #9
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Заменятель - это обычно тот, кто что-то заменяет(заменил, заменял).
Профессия заменятеля подразумевает правильное заменяние.
Цитата:
юмор про заменятеля не понял(
Не беда.
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Несложная программа на Pascal xliker Помощь студентам 0 26.09.2010 00:52
несложная программа в vb retype Помощь студентам 2 15.05.2010 07:07
несложная программа на Делфи mast2xx Помощь студентам 1 14.02.2010 10:59
ребята нашол интересную задачу уже неделю думаю на даюсь на вашу помощь программа на Jave Лучик2009 Помощь студентам 8 09.05.2009 23:12
ошибка в синтаксисе Dimarik Общие вопросы C/C++ 7 30.04.2009 21:43