С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 19.04.2010
Сообщений: 14

замена функции Replace работая со строкой!

19.04.2010, 18:16. Показов 6539. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание: "заменить строку S1 все вхождения подстроки S2 на подстроку S3 "вручную" (не используя специальных функций поиска и удаления подстроки)"

Работайте со сторокой, как с массивом символов.

т.е. оператарами как
Substring
Insert
IndexOf
нельзя пользоваться

Суть моего задания по сути - реализовать функцию Replace.

ВСЁ разумеется на C#

ДАже не знаю с чего начанать! HELP, PLESE!!!!!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.04.2010, 18:16
Ответы с готовыми решениями:

Замена текста(Replace)
Всем добрый вечер! Задался тут вопросом замены текста. В основном использую для того, что бы при PostBake страницы, текст введенный в...

Замена символов без использование Replace
только начал изучать string в c# и не въеду никак...нужно зменить в строке все знаки препинания на пробел...но только replace использовать...

Замена запятой в дроби на точку (replace)
Помогите, пожалуйста, с кодом. У меня есть numericUpDownModel. Вот мой код: //Model decimal Model =...

7
Кодило
 Аватар для r0fL
251 / 179 / 23
Регистрация: 25.11.2009
Сообщений: 685
19.04.2010, 18:27
эм, в цикле перебираешь символы в строке и заменяешь на нужные
1
0 / 0 / 0
Регистрация: 19.04.2010
Сообщений: 14
19.04.2010, 18:31  [ТС]
Начал а как дальше ХЗ!

string words = textBox1.Text;
string gaga = textBox2.Text;

string zam = textBox3.Text;

int len = words.Length;
int lengaga = gaga.Length;
int zamdl = zam.Length;

if (words.Length == 0) MessageBox.Show("YT hf,jnftn");
if (lengaga ==0) MessageBox.("TEXT");
if (lengaga ==1)
{
for (int i = 0; i < words.Length; i++)
{ words[i]= zam;
}
}


// Char end = words[len - 1]; // последний символ строки
{
for (int i = 0; i < words.Length-lengaga; i++)

for (int j = 0; j < words.Length-lengaga; j++)
if ((words[i] == gaga[j]) && (words[i + 1] == gaga[j +1])) textBox4.Text += i + 1 + "!";

}

// if (words[i] + words[i + 1] == gaga[j] + gaga[j + 1]) textBox4.Text += j + 1;
// сколько words[i] + words[i + 1] столько же и символов для поиска
// gaga.Length-1 -1 как использовали поиска одного символа


//Char start = words[0]; // первый символ строки

//s2 = s2 + start;
//s2 = s2 + end; //теперь s2 - это строка из двух символов: первого и последнего из строки s.
//textBox4.Text = s2;

}
0
24 / 23 / 5
Регистрация: 14.04.2010
Сообщений: 41
19.04.2010, 20:00
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
 
namespace ConsoleApplication1
{
    class Program
    {
        /////////////////////////////////////////////////////проверяет, является ли sub подстрокой src начиная с позиции index
        static public bool IsSubstr (String src, String sub, int index)
        {
            int l = sub.Length;
            if (index > src.Length - l) return false; //если позиция больше, чем нужно, сразу возвращается false
            for (int i = 0; i < l; i++) if (src[i+index] != sub[i]) return false;//посимвольно сравниваются sub и участок src. При первом же несовпадении возвращается false
            return true;
        }
        /////////////////////////////////////////////////////функция Replace
        static public String MyReplace(String src, String sub1, String sub2)
        {
            int len = src.Length;
            int l1 = sub1.Length; //чтобы не загромождать код и каждый раз не вызывать Length, сохранил длины строк в переменных
            int l2 = sub1.Length;
            String Result = "";  //результирующая строка
 
            if (l1 > len) throw new Exception("Слишком длинная подстрока!"); //проверка, если подстрока длиннее, чем сама строка
 
            for (int i = 0; i < len; i++)   //цикл по символам основной строки
                if (IsSubstr(src, sub1, i)) //если строка sub1 является подстрокой src в позиции i, то выполняется условие
                {
                    Result += sub2; //к результирующей строке прибавляется sub2, то есть строка, которой мы заменяем sub1
                    i += (l1 - 1);  //позицию в основной строке сразу увеличиваем, так как нашли подстроку
                }else
                    Result+=src[i]; //если sub1 не подстрока src в позиции i, то к результирующей просто добавляем символ из основной строки
                
            return Result;      
        }
        /////////////////////////////////////////////////////
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine(MyReplace("1122211122211", "11", "####")); //вызов функции
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadKey();
            
        }
        /////////////////////////////////////////////////////
    }
}
Попробуй этот код.
1
0 / 0 / 0
Регистрация: 19.04.2010
Сообщений: 14
19.04.2010, 20:23  [ТС]
String src, String sub, int index

String MyReplace(String src, String sub1, String sub2)
bool IsSubstr


что это всё означает?


int l1 = sub1.Length;
int l2 = sub1.Length;
во второй строке опечатка?
0
24 / 23 / 5
Регистрация: 14.04.2010
Сообщений: 41
19.04.2010, 20:47
int l2 = sub1.Length;

Эту вообще не нужна, забыл убрать.
1
0 / 0 / 0
Регистрация: 19.04.2010
Сообщений: 14
19.04.2010, 20:51  [ТС]
Спасибо! AstroNom скажи свой сотовый денег могу кинуть!
Кстате может готовую тогда форму мне на franzs@mail.ru
0
24 / 23 / 5
Регистрация: 14.04.2010
Сообщений: 41
19.04.2010, 22:08
Спасибо! AstroNom скажи свой сотовый денег могу кинуть!
Кстате может готовую тогда форму мне на franzs@mail.ru
Отправил.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.04.2010, 22:08
Помогаю со студенческими работами здесь

Замена массивов методом replace
Имею такой скрипт в PHP аналог работает без проблем.решил переписать на JS, и не работает,только осваиваю почему замена не происходит? ...

Замена символов в массиве через Replace
Не знаю как сделать это через Replace! Задача:Дан массив символов. Преобразовать его, заменив точками все двоеточия (:), встречающиеся...

Замена текста в word через replace
Здравствуйте. Взяла чужую программку и немножко изменила. Она заменяет текст в ворде на текст, который я ввожу в поле edit. Изначально в...

Замена определённой буквы в слове, метод replace()
Привет Понимаю что глупый вопрос конечно, но чего-то застрял на этом Задача - угадывать буквы из определённых ранее слов Допустим...

Replace: замена символов в строке на другие символы
Есть такой вот код (должен менять символы в строке на другие символы) def replace_all(text, dict): for i, j in dict.iteritems():...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru