Итак, для моего класса вычислительной техники 162 нам предоставляется назначение простого текстового редактора, но нам разрешено использовать cstrings/массивы символов, поэтому без строк. Тем не менее, нам разрешено использовать класс cstring для выполнения определенных функций. Текстовый редактор должен исправить небольшие ошибки, например: если после периода есть только одно место, добавьте второй; если простое слово, такое как «the», написано неправильно (например, «teh»), исправьте его автоматически; если начальная буква предложения не капитализируется, используйте ее. Теперь у меня есть функция, чтобы исправить пробелы, работающие просто отлично, но функция проверки «teh» и изменения ее на «the» отключает меня. Вот моя программа до сих пор:Использование Strncpy для создания простого текстового редактора в C++
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 для выполнения того, что мне нужно делать? Если есть лучший способ, который мне не хватает, что это? Спасибо.
Что делать, чтобы на самом деле делать проверки? – Nowayz
также следует пометить C, если вы можете использовать только конструкции и функции C – Nowayz
, он проверяет, есть ли какие-либо экземпляры, в которые пользователь помещает только одно место после периода в конце предложения. Если они это сделали, он добавляет второе пространство, так что всегда есть два пробела после периода. Не беспокойтесь об этом; он работает уже. – hhoward