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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Rom@
22 / 22 / 3
Регистрация: 29.11.2009
Сообщений: 210
#1

Подсчитать количество слов в строке - C++

12.04.2010, 16:17. Просмотров 2279. Ответов 12
Метки нет (Все метки)

1.Дано строку слова в которой разделены пробелом (1 или несколькими). Подсчитать количество слов в даной строке.
2.Дано текст. Подсчитать количество строк.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2010, 16:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать количество слов в строке (C++):

Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в последнем слове - C++
Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в...

Подсчитать количество всех строк, а потом - количество слов в каждой строке - C++
Программа считает количество строк в файле add.txt выводит на экран и записывает в новый указанный пользователем файл. #include...

Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов) - C++
Написать программу, в которой с клавиатуры вводится строка символов. Подсчитать количество слов в строке, при условии, что в качестве...

Подсчитать количество слов в строке - C++
Дана строка. Словом в ней назовем последовательность подряд идущих латинских букв (больших или маленьких). Подсчитать количество слов в...

Подсчитать количество слов в строке - C++
Дана строка. Словом в ней назовем последовательность подряд идущих латинских букв (больших или маленьких). Подсчитать количество слов в...

Подсчитать количество слов в строке - C++
Догнать не могу как начать делать? На форумах искал, там везде есть, но только если пробел один. А вот если несколько? само задание...

12
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.04.2010, 16:24 #2
1
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define size 255
int main(){
char buf[size];
printf("input text: "); gets(buf);
unsigned int lenght = strlen(buf);
unsigned int i ;
int count = 1;
for( i = 0 ; i < lenght ; i++)if(buf[i]==' '||buf[i]=='\0')count++;
printf("count of words : %d",count);
printf("\n");
 
getch();
return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
12.04.2010, 16:27 #3
Genius Ignat, если между словами несколько пробелов (а по условию допускается) - будет неправильно считать.
2
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.04.2010, 16:28 #4
2.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define size 255
int main(){
char buf[size] = "ddddddddd\n aaaaaaa\n nrrrrr\n kkkk \n ";
 
 
unsigned int lenght = strlen(buf);
unsigned int i ;
printf("%s",buf);
printf("\n");
 
int count = 0;
for( i = 0 ; i < lenght ; i++)if(buf[i]=='\n')count++;
printf("count of str : %d",count);
printf("\n");
 
 
 
 
 
 
getch();
return 0;
}
1
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
12.04.2010, 16:29 #5
C
1
2
3
4
5
6
7
8
9
10
...
#include <string.h>
...
char buf[SOME_SIZE], *p;
size_t count;
...
for ( count = 0, p = strtok(buf, " "); p != NULL; ++count, p = strtok(NULL, " ") )
  ;
printf("%d words\n", count);
...
2
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
12.04.2010, 16:32 #6
Genius Ignat, если между словами несколько пробелов (а по условию допускается) - будет неправильно считать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
#define size 255
int main(){
char buf[size];
printf("input text: "); gets(buf);
unsigned int lenght = strlen(buf);
unsigned int i ;
int count = 1;
for( i = 0 ; i < lenght ; i++)if((buf[i]==' '&&buf[i+1]!=' ')||buf[i]=='\0')count++;
printf("count of words : %d",count);
printf("\n");
 
getch();
return 0;
}
Если и здесь плохо исправлять не буду.
1
Rom@
22 / 22 / 3
Регистрация: 29.11.2009
Сообщений: 210
12.04.2010, 16:32  [ТС] #7
Есть проблема!! Если ввести два пробела подряд то оно выведет что это тоже слово.
0
romex
44 / 44 / 4
Регистрация: 11.04.2010
Сообщений: 223
12.04.2010, 17:36 #8
Можно так!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<string.h>
#define SBUF 256
int main(){
    int i=0;
    char buf[SBUF];
    printf("\nEnter string\n");
    gets(buf);
    if(strtok(buf," ")!=0){
        i++;
        while(strtok(NULL," ")!=NULL){
            i++;
        }
    }
    printf("%d\n",i);
    return 0;
}
1
Rom@
22 / 22 / 3
Регистрация: 29.11.2009
Сообщений: 210
12.04.2010, 20:17  [ТС] #9
Genius Ignat, мне нужно чтобы пользователь сам вводил текст
0
Rom@
22 / 22 / 3
Регистрация: 29.11.2009
Сообщений: 210
16.04.2010, 20:56  [ТС] #10
Цитата Сообщение от Rom@ Посмотреть сообщение
Дано строку слова в которой разделены пробелом (1 или несколькими). Подсчитать количество слов в даной строке.
Блин препод немного изменил условие надо:
Дано строку слова в которой разделены пробелом (1 или несколькими). Подсчитать количество слов в даной строке, которые содержат "ААА".
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
16.04.2010, 23:00 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
#include <sstream>
 
/*
    Дана строка, слова в которой разделены пробелом (1 или несколькими). 
    Подсчитать количество слов в даной строке, которые содержат "ААА". 
*/
 
int main(){
    std::string buf, tmp;
    size_t cnt = 0;
    const std::string to_find = "AAA";
    
    std::cout << "String: ";
    std::getline(std::cin, buf);
    std::istringstream ist(buf);
 
    while ( ist >> tmp )
        if ( tmp.find(to_find) != std::string::npos )
            ++cnt;
    
    std::cout << cnt << " words contain \"" << to_find << "\"" << std::endl;
    
    return 0;
}
1
Rom@
22 / 22 / 3
Регистрация: 29.11.2009
Сообщений: 210
16.04.2010, 23:13  [ТС] #12
Цитата Сообщение от easybudda Посмотреть сообщение
#include <sstream>
а что ето за библиотека?
0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
16.04.2010, 23:31 #13
Rom@, в ней объявлены классы для манипуляции строками, как потоками ввода/вывода (istringstream, ostringstream, etc...)
1
16.04.2010, 23:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2010, 23:31
Привет! Вот еще темы с ответами:

Подсчитать количество слов в строке - C++
Составить программу, подсчитывает число слов в строке, введенного пользовате-чем. Для этого написать функцию с прототипом: int num_word...

Подсчитать количество слов в строке - C++
Ввести небольшой текст (с пробелами) в строку s. Подсчитать количество слов в строке и вывести все слова в столбик.

Подсчитать количество слов в строке С++ - C++
В заданной строке посчитать количество слов. Разделителем слов считается пробел. Вот примерно хотел реализовать задачу, но когда...

Подсчитать количество слов в строке - C++
Очень надо!!! 1. Дана строка - подсчитать количество слов в строке и вывести на экран количество слов, эти слова и напротив...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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