Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 91
#1

Подсчитать количество слов в тексте и удалить последнее. - C++

30.11.2013, 19:17. Просмотров 409. Ответов 9
Метки нет (Все метки)

Задан текст. Посчитать кол-во слов и удалить в нем последнее слово.Если есть слова одинаковые с последним словом - удалить и их
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <conio.h>
#include <string>
int main()
{
        
        char str[256];
        int count=0;
        char *pstr;
        system("cls");              
        printf("Enter string: ");
        gets(str);
        pstr=strtok(str," ");
        while (pstr!=NULL)
           {
             pstr=strtok(NULL," ");
             count++;
           }
        printf("Words - %d", count);
        getch();
        return 0;
         
}
Данная программа считает слова, помогите доработать.

Добавлено через 5 часов 23 минуты
Никто не знает как доработать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 19:17     Подсчитать количество слов в тексте и удалить последнее.
Посмотрите здесь:

Подсчитать количество слов в тексте C++
C++ Как подсчитать количество слов в конкретном тексте, а не во введенном с клавиатуры
Подсчитать количество слов в тексте, которые начинаются с цифры C++
C++ Подсчитать количество слов в тексте
C++ Подсчитать количество слов, букв в тексте
C++ Подсчитать количество слов во введенном тексте
Подсчитать количество слов в тексте C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,990
Завершенные тесты: 1
30.11.2013, 19:26     Подсчитать количество слов в тексте и удалить последнее. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main()
{
        char str[256];
        int count=0;
        char *pstr,*pOld;;
        printf("Enter string: ");
        gets(str);
        pstr=strtok(str," ");
        while (pstr!=NULL)
           {
             pOld=pstr;
             pstr=strtok(NULL," ");
             count++;
           }
        printf("Words - %d Last Word - %s", count,pOld);
        getch();
        return 0;
         
}
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 91
01.12.2013, 00:00  [ТС]     Подсчитать количество слов в тексте и удалить последнее. #3
zss, А как сделать так, чтобы программа удалила это последнее слово, а оставшиеся слова вывела на экран?
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,990
Завершенные тесты: 1
01.12.2013, 10:51     Подсчитать количество слов в тексте и удалить последнее. #4
Цитата Сообщение от Aer_rus Посмотреть сообщение
удалила это последнее слово, а оставшиеся слова вывела на экран
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main()
{
        char str[256];
        int count=0;
        char *pstr,*pOld;;
        printf("Enter string: ");
        gets(str);
        pstr=strtok(str," ");
        while (pstr!=NULL)
           {
             pOld=pstr;
             pstr=strtok(NULL," ");
             count++;
           }
        printf("Words - %d Last Word - %s\n", count,pOld);
        pOld[0]=0;// 0 - признак конца строки.
        puts(str); // выводим остаток. 
        getch();
        return 0;
         
}
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 91
01.12.2013, 20:56  [ТС]     Подсчитать количество слов в тексте и удалить последнее. #5
zss, Ваша программа как остаток выводит только первое слово
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,990
Завершенные тесты: 1
01.12.2013, 21:24     Подсчитать количество слов в тексте и удалить последнее. #6
Придется убрать последствия strtoc:
C++
1
2
3
4
5
6
7
8
        
....
        printf("Words - %d Last Word - %s\n", count,pOld);
        for(int i=0;i<256;i++) // устранить последствия работы strtoc
            if(str[i]==0)
                str[i]=' ';
        pOld[0]=0;// 0 - признак конца строки.
        ....
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 91
01.12.2013, 21:53  [ТС]     Подсчитать количество слов в тексте и удалить последнее. #7
zss, А как можно сделать в данной программе, чтобы программа в словах из остатка удалила первую букву?
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,990
Завершенные тесты: 1
02.12.2013, 09:49     Подсчитать количество слов в тексте и удалить последнее. #8
Цитата Сообщение от Aer_rus Посмотреть сообщение
в словах из остатка удалила первую букву?
Заменим первую букву на пробел:
C++
1
2
3
4
5
6
7
8
        pstr=strtok(str," ");
        while (pstr!=NULL)
           {
       pstr[0]=' '; // pstr указывает на 1 букву слова
            pOld=pstr;
             pstr=strtok(NULL," ");
             count++;
           }
Aer_rus
0 / 0 / 0
Регистрация: 13.10.2013
Сообщений: 91
03.12.2013, 00:28  [ТС]     Подсчитать количество слов в тексте и удалить последнее. #9
zss, Программа не удаляет у первого слова первую букву, только у последующих
п.с. zss, Огромное вам спасибо за проделанную вами работу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 08:13     Подсчитать количество слов в тексте и удалить последнее.
Еще ссылки по теме:

Подсчитать количество слов в тексте; C++
C++ Подсчитать количество слов в тексте
C++ Подсчитать количество предложений и слов в тексте
C++ Подсчитать количество слов в тексте, которые заканчиваются на гласную букву
Подсчитать количество слов в тексте, которые начинаются с гласной буквы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zss
Модератор
Эксперт С++
6248 / 5851 / 1891
Регистрация: 18.12.2011
Сообщений: 14,990
Завершенные тесты: 1
03.12.2013, 08:13     Подсчитать количество слов в тексте и удалить последнее. #10
C++
1
2
заменить первую букву на пробел:
[CPP]str[0]=' ';
[/CPP]
Yandex
Объявления
03.12.2013, 08:13     Подсчитать количество слов в тексте и удалить последнее.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru