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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2013, 18:01   #1
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию C# строка

подскажите плиз как в строке допустим string s="ст50р10ка50" посчитать сумму чисел!?
Nickolai47 вне форума Ответить с цитированием
Старый 22.05.2013, 18:20   #2
Радик29
Пользователь
 
Регистрация: 26.12.2012
Сообщений: 90
По умолчанию

Выбираешь из строки числа и считаешь сумму чисел
Радик29 вне форума Ответить с цитированием
Старый 22.05.2013, 18:22   #3
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию

Код:
   static void Main(string[] args)
        {
            Console.WriteLine("Введите строку");
           string txt = Console.ReadLine();
           int count = 0;
            for (int i = 0; i < txt.Length; ++i)
            {
                if (Char.IsDigit(txt[i]))
                {
                    string s =Convert.ToString(txt[i]);
                    count += int.Parse(s);
                }
            }
            Console.WriteLine("Сумма цифр= {0}",count);
            Console.ReadLine();
        }
Serg94 вне форума Ответить с цитированием
Старый 22.05.2013, 18:24   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Nickolai47

выделить из строки последовательности цифр, перевести их в числа, просуммировать, profit.

var sum = Regex.Split(s, @"[^\d]+").Select(p => string.IsNullOrEmpty(p) ? 0 : int.Parse(p)).Sum();
Rififi вне форума Ответить с цитированием
Старый 22.05.2013, 18:44   #5
Nickolai47
Пользователь
 
Регистрация: 24.10.2012
Сообщений: 37
По умолчанию

Цитата:
Сообщение от Serg94 Посмотреть сообщение
Код:
   static void Main(string[] args)
        {
            Console.WriteLine("Введите строку");
           string txt = Console.ReadLine();
           int count = 0;
            for (int i = 0; i < txt.Length; ++i)
            {
                if (Char.IsDigit(txt[i]))
                {
                    string s =Convert.ToString(txt[i]);
                    count += int.Parse(s);
                }
            }
            Console.WriteLine("Сумма цифр= {0}",count);
            Console.ReadLine();
        }
в твоём случае если использовать пример то я получу 11, но мне нужно сложить 50+10+50=110
Nickolai47 вне форума Ответить с цитированием
Старый 22.05.2013, 21:38   #6
Serg94
Форумчанин
 
Аватар для Serg94
 
Регистрация: 10.12.2011
Сообщений: 167
По умолчанию

тогда как-то так
Код:
 Console.WriteLine("Введите строку");
           string txt = Console.ReadLine();
           int count = 0;
           string s = "";
            for (int i = 0; i < txt.Length; ++i)
            {
                if (Char.IsDigit(txt[i]))
                {
                    s += Convert.ToString(txt[i]);
                    count++;
                }
                else
                    if (count > 0)
                    {
                        s += " ";
                        count = 0;
                    }   
            }
            count = 0;
            if (s == "")
                Console.WriteLine("Чисел нет");
            else
            {
                string[] result = s.Split(' ');
                for (int i = 0; i < result.Length; ++i)
                {
                    count += int.Parse(result[i]);
                }
                Console.WriteLine("Сумма чисел= {0}", count);
            }
            Console.ReadLine();
Serg94 вне форума Ответить с цитированием
Старый 22.05.2013, 21:42   #7
Sergey_gorobets
Пользователь
 
Регистрация: 08.02.2013
Сообщений: 69
По умолчанию

Цитата:
Сообщение от Nickolai47 Посмотреть сообщение
в твоём случае если использовать пример то я получу 11, но мне нужно сложить 50+10+50=110


возьми этот код, только добавь строки, которые при нахождении первого числа, (5 в твоем случае), проверяли следующий за ним и если следующий символ число, то 5 множиш на 10+ новое число (ноль в твоем случае), и проверяешь дальше. как только символ не является числом суме присваиваешь результат умножения и суммирования.
Если трехзначное, значит опять множишь на 10+ число...Думаю идею понял.
Интересно мнение специалистов..Имеет ли право данная идея на жизнь?
Sergey_gorobets вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
строка string и строка char Petyu Общие вопросы C/C++ 3 16.05.2013 00:26
строка kazbek1 Паскаль, Turbo Pascal, PascalABC.NET 5 17.05.2012 18:51
Строка в С++ dronchik2010 Помощь студентам 2 08.12.2011 16:04
строка D_E_N Общие вопросы Delphi 2 03.01.2010 21:44
Строка состаяния или загрузачная строка Sergeu Мультимедиа в Delphi 8 27.08.2008 10:32