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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2009, 18:07   #1
Raptor5
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 32
По умолчанию Помогите с задачей (строки)

4. Дана строка символов. Группу символов, разделённых с одной или с обеих сторон одним или несколькими пробелами и не содержащую внутри себя пробелов, назовём словом.
Вывести на экран все слова с количеством символов больше 4 и меньше 10. Если таких слов нет, то вывести соответствующее сообщение.

Код:
string s, c;
            int d, d1, p1, p;
            Console.WriteLine("Введите строку");
            s = Console.ReadLine();
            d = s.Length;
            p = s.IndexOf(' ');
            p1 = s.IndexOf(' ');
            c = s.Substring(p + 1, p1 - p - 1);
            d1 = c.Length;
            if (d > 4 && d < 10)
            {
              Console.WriteLine(c);
            }
            else
                Console.WriteLine("Слов с количеством символов больше 4 и меньше 10 нету");
            Console.ReadLine();
        }
    }
}
Насколько я понял ошибка у меня в том что в p и p1 записывается один и тот же пробел, но как сделать иначе я незнаю.....Помогите пожалуйста.

Последний раз редактировалось Raptor5; 23.09.2009 в 18:09.
Raptor5 вне форума Ответить с цитированием
Старый 23.09.2009, 18:37   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Используй s.Split(' '); или s.IndexOfAny(' ');
ds.Dante вне форума Ответить с цитированием
Старый 24.09.2009, 09:42   #3
Raptor5
Пользователь
 
Регистрация: 13.01.2008
Сообщений: 32
По умолчанию

а других вариантов нету? Это не робит.
Raptor5 вне форума Ответить с цитированием
Старый 05.10.2009, 22:56   #4
armivl
Пользователь
 
Регистрация: 26.07.2009
Сообщений: 19
По умолчанию

Код:
static void Main(string[] args)
        {
            string input =null;
            while (input !="exit")
            {
                
                Console.WriteLine("Введите строку с пробелами для сортировки:");
                bool YesStr = false;
                input = Console.ReadLine();
                string prepInput = String.Format(" {0} ", input);
                ArrayList listIndexsEmpty = new ArrayList();
                for (int i = 0; i < prepInput.Length; i++)
                {
                    if (prepInput[i] == ' ') listIndexsEmpty.Add(i);

                }
                for (int j = 0; j < listIndexsEmpty.Count; j++)
                {
                    if (j > 0 && j <= listIndexsEmpty.Count - 1)
                    {
                        int startIndex = (int)listIndexsEmpty[j - 1] + 1;
                        int leingth = (int)listIndexsEmpty[j] - startIndex;
                        if (leingth > 4 && leingth < 10)
                        {
                            YesStr = true;
                            Console.WriteLine(prepInput.Substring(startIndex, leingth));
                        }
                    }
                }
                if (!YesStr) Console.WriteLine("Строки с количеством символов от 4 до 10 отсутствуют");
                Console.WriteLine("Нажмите exit для выхода...");
                input = Console.ReadLine();
            }
        }

Последний раз редактировалось Sazary; 07.10.2009 в 00:18.
armivl вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с задачей Гудвин Помощь студентам 10 01.04.2009 00:26
Помогите с задачей!!!!!!!!! Lena123 Паскаль, Turbo Pascal, PascalABC.NET 3 26.11.2008 22:51