Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11855
Последний выпуск: 19.06.2015

Си Работа с символьными и текстовыми данными

88K
29 октября 2016 года
Богдан Михайлов
2 / / 29.10.2016
Превратить начальный текст таким образом: перед всеми глаголами в инфинитиве (ить, ать, ять, еть) вставить отрицание "не". (начальный текст вводит пользователь) помогите пожалуйста с кодом.
455
30 октября 2016 года
cronya
412 / / 03.01.2009
Парсите(Разбиваете) строку на слова в массив, определяете длину слова, начиная с последнего символа слова в обратном порядке проверяете на окончание, если совпали, можно создать числовой массив, который будет хранить положения текущего слова, подходящего по характеристике, Восстанавливаете строку с добавлением "пробела не пробела" в предложение из полученного проверочного массива.
С# - как то так:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Verbs
{
    class Program
    {
        static void Main(string[] args)
        {
            string Line = string.Empty;
            Console.Write("Введите фразу: ");
            Line = Console.ReadLine();
            char[] param = { ' ' };
            string[] mArray = Line.Split(param);
            string[] suffix = { "ать", "ить", "ять", "еть" };            
            bool flag = false;
            Line = string.Empty;
            for (int idx = 0; idx < mArray.Length; idx++)
            {
                flag = false;
                for (int kdx = 0; kdx < suffix.Length; kdx++)
                {
                    if (mArray[idx].Contains(suffix[kdx]))
                        flag = true;                    
                    if (flag) break;
                }
                if (flag)
                {
                    string ptr = string.Empty;
                    for(int jdx = mArray[idx].Length - 3; jdx < mArray[idx].Length; jdx++)
                    {
                        ptr += mArray[idx][jdx];
                    }                    
                    for (int ldx = 0; ldx < suffix.Length; ldx++)
                    {
                        if(ptr == suffix[ldx])
                        {                    
                            if(idx == 0)
                            {
                                Line += "не " + mArray[idx];
                            }
                            else
                            {                                                                
                                Line += " не " + mArray[idx];
                            }
                            break;
                        }
                    }
                }
                else
                {
                    if(idx == 0)
                    {
                        Line += mArray[idx];
                    }
                    else
                    {
                        Line += " " + mArray[idx];
                    }
                }
            }
            Console.Write("Новая фраза: ");
            Console.WriteLine(Line);
            Console.ReadLine();
        }
    }
}
Результат:
88K
31 октября 2016 года
Богдан Михайлов
2 / / 29.10.2016
Спасибо большое)))!!
209
01 ноября 2016 года
koderAlex
1.4K / / 07.09.2005
слова "благодать" , "гать " , "кровать" и т.д. эта программа примет за глагол . :)
455
01 ноября 2016 года
cronya
412 / / 03.01.2009
знаю, но проверять все исключения мне лень, то есть не в моих интересах. Халява есть халява.

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог