Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Инкрементирование строки 
:(
    Опции темы
WingfirE
Дата 28.12.2016, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 10.3.2012

Репутация: нет
Всего: нет



Всем привет. Можете помочь написать метод Инкриминирующий строку, принимающую в качестве аргумента в виде массива типа char. Пример результата:
00000007 - 00000008
SVA00001 - SVA00002
PM MAIL   Вверх
a0730
Дата 29.12.2016, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Попробуй так:
Код

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IncrementString("00000007"));
            Console.WriteLine(IncrementString("SVA00001"));
            Console.ReadLine();
        }
        private static string IncrementString(string s)
        {
            char[] a = s.ToCharArray();
            Array.Reverse(a);
            int cf = 0;
            bool x = true;
            for (int i = 0; i < a.Length;++i )
            {
                if( i > 0 && cf == 0 )
                {
                    break;
                }
                char c = a[i];
                if (char.IsDigit(c))
                {
                    int k = Convert.ToInt16(c) - 48;
                    if (i == 0)
                    {
                        k++;
                    }
                    else
                    {
                        k += cf;
                    }
                    cf = k / 10;
                    a[i] = Convert.ToChar(48 + k % 10);
                }
                else
                {
                    break;
                }
            }
            Array.Reverse(a);
            return new string(a);
        }
    }


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
a0730
Дата 29.12.2016, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Попробуй так:
Код

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IncrementString("00000007"));
            Console.WriteLine(IncrementString("SVA00001"));
            Console.ReadLine();
        }
        private static string IncrementString(string s)
        {
            char[] a = s.ToCharArray();
            Array.Reverse(a);
            int cf = 0;
            bool x = true;
            for (int i = 0; i < a.Length;++i )
            {
                if( i > 0 && cf == 0 )
                {
                    break;
                }
                char c = a[i];
                if (char.IsDigit(c))
                {
                    int k = Convert.ToInt16(c) - 48;
                    if (i == 0)
                    {
                        k++;
                    }
                    else
                    {
                        k += cf;
                    }
                    cf = k / 10;
                    a[i] = Convert.ToChar(48 + k % 10);
                }
                else
                {
                    break;
                }
            }
            Array.Reverse(a);
            return new string(a);
        }
    }


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
a0730
Дата 29.12.2016, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Попробуй так:
Код

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IncrementString("00000007"));
            Console.WriteLine(IncrementString("SVA00001"));
            Console.ReadLine();
        }
        private static string IncrementString(string s)
        {
            char[] a = s.ToCharArray();
            Array.Reverse(a);
            int cf = 0;
            bool x = true;
            for (int i = 0; i < a.Length;++i )
            {
                if( i > 0 && cf == 0 )
                {
                    break;
                }
                char c = a[i];
                if (char.IsDigit(c))
                {
                    int k = Convert.ToInt16(c) - 48;
                    if (i == 0)
                    {
                        k++;
                    }
                    else
                    {
                        k += cf;
                    }
                    cf = k / 10;
                    a[i] = Convert.ToChar(48 + k % 10);
                }
                else
                {
                    break;
                }
            }
            Array.Reverse(a);
            return new string(a);
        }
    }


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
a0730
Дата 29.12.2016, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Попробуй так:
Код

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IncrementString("00000007"));
            Console.WriteLine(IncrementString("SVA00001"));
            Console.ReadLine();
        }
        private static string IncrementString(string s)
        {
            char[] a = s.ToCharArray();
            Array.Reverse(a);
            int cf = 0;
            bool x = true;
            for (int i = 0; i < a.Length;++i )
            {
                if( i > 0 && cf == 0 )
                {
                    break;
                }
                char c = a[i];
                if (char.IsDigit(c))
                {
                    int k = Convert.ToInt16(c) - 48;
                    if (i == 0)
                    {
                        k++;
                    }
                    else
                    {
                        k += cf;
                    }
                    cf = k / 10;
                    a[i] = Convert.ToChar(48 + k % 10);
                }
                else
                {
                    break;
                }
            }
            Array.Reverse(a);
            return new string(a);
        }
    }


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
a0730
Дата 29.12.2016, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 1.6.2008

Репутация: нет
Всего: нет



Попробуй так:
Код

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(IncrementString("00000007"));
            Console.WriteLine(IncrementString("SVA00001"));
            Console.ReadLine();
        }
        private static string IncrementString(string s)
        {
            char[] a = s.ToCharArray();
            Array.Reverse(a);
            int cf = 0;
            bool x = true;
            for (int i = 0; i < a.Length;++i )
            {
                if( i > 0 && cf == 0 )
                {
                    break;
                }
                char c = a[i];
                if (char.IsDigit(c))
                {
                    int k = Convert.ToInt16(c) - 48;
                    if (i == 0)
                    {
                        k++;
                    }
                    else
                    {
                        k += cf;
                    }
                    cf = k / 10;
                    a[i] = Convert.ToChar(48 + k % 10);
                }
                else
                {
                    break;
                }
            }
            Array.Reverse(a);
            return new string(a);
        }
    }


Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1935 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.