Итак, для моего класса вычислительной техники 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 для выполнения того, что мне нужно делать? Если есть лучший способ, который мне не хватает, что это? Спасибо.
Почему вы хотите использовать "strncpy"? Вы можете сделать простую замену, создав newpara [i + 1] = newpara [i + 2]; Newpara [I + 2] = 'е';