Си Работа с символьными и текстовыми данными
Превратить начальный текст таким образом: перед всеми глаголами в инфинитиве (ить, ать, ять, еть) вставить отрицание "не". (начальный текст вводит пользователь) помогите пожалуйста с кодом.
С# - как то так:
Код:
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();
}
}
}
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();
}
}
}
Спасибо большое)))!!
слова "благодать" , "гать " , "кровать" и т.д. эта программа примет за глагол . :)
знаю, но проверять все исключения мне лень, то есть не в моих интересах. Халява есть халява.