Использование Strncpy для создания простого текстового редактора на C ++

0

Итак, для моего класса вычислительной техники 162 нам предоставляется назначение простого текстового редактора, но нам разрешено использовать cstrings/массивы символов, поэтому ни одна строка не разрешена. Тем не менее, нам разрешено использовать класс cstring для выполнения определенных функций. Текстовый редактор должен исправить небольшие ошибки, например: если после периода есть только одно место, добавьте второй; если простое слово, такое как "the", написано неправильно (например, "teh"), исправьте его автоматически; если начальная буква предложения не капитализируется, используйте ее. Теперь у меня есть функция, чтобы исправить пробелы, работающие просто отлично, но функция проверки "teh" и изменения ее на "the" отключает меня. Вот моя программа до сих пор:

enter_paragraph(char paragraph[])
{
    cout <<"Enter a paragraph:";
    cin.getlin(paragraph,300,"#");
    cout <<"Here is your paragraph: " <<endl<<paragraph;
}

check_spaces(char paragraph[],char new_para[])
{
    int l = strlen(paragraph);
    int i = 0;
    int n = 0;
    while(i<l)
    {
        new_para[n] = paragraph[i];
        n++;
        if(paragraph[i] == '.')
        {
            if(paragraph[i+1] == ' ')
            {
                if(paragraph[i+2] != ' ')
                {
                    new_para[n] = ' ';
                    n++;
                    new_para[n] = ' ';
                    n++;
                }
            }
        }
        i++;
    }

}

check_the()
{
    int l = strlen(new_para);
    int i = 0;
    char
    while(i<l)
    {
        if(new_para[i] == 't')
        {
            if(new_para[i+1] == 'e')
            {
                if(new_para[i+2] == 'h')
                {
                    strncpy(i+
} 

check_caps()
{
}

int main()
{
    char paragraph[300];

/* prompt user to enter a paragraph (no more than 300 characters) */
    enter_paragraph(paragraph);
    cout <<"Here is your paragraph: " <<endl<<paragraph;

/* user enters paragraph; program stores it */

/* check paragraph for two spaces after each paragraph; if there aren't, then change it */
    check_spaces(paragraph);

/* check paragraph for misspelling of "the"; if user typed "teh," change it to "the" */
    check_the();

/* check paragraph for a capitalized first letter after each period; if it is lowercase, change it */
    check_caps();

/* и т.д. вывести новый исправленный абзац (как новый массив, желательно) */}

Я знаю, что в основной функции есть некоторые ошибки, но я не беспокоюсь о них прямо сейчас. Мне просто нужна помощь с функцией check_the. Как я могу использовать strncpy для выполнения того, что мне нужно делать? Если есть лучший способ, который мне не хватает, что это? Спасибо.

  • 0
    что должны делать проверочные пробелы?
  • 0
    также это должно быть помечено C, если вы можете использовать только конструкции и функции C
Показать ещё 5 комментариев
Теги:

1 ответ

2
Лучший ответ

Почему вы хотите использовать "strncpy"? Вы можете сделать простую замену, создав newpara [i + 1] = newpara [i + 2]; Newpara [I + 2] = 'е';

  • 0
    вау .... если это сработает, то я буду чувствовать себя довольно глупо. Позволь мне попробовать.
  • 0
    это сработало! Я официально чувствую себя глупо. Спасибо!
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню