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

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

Войти
Регистрация
Восстановить пароль
 
qwe12355
7 / 7 / 0
Регистрация: 26.11.2011
Сообщений: 117
#1

Строки C++ - C++

26.11.2011, 20:42. Просмотров 1036. Ответов 7
Метки нет (Все метки)

Помогите пожалуйста.

Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо:

а) определить количество слов в строке;

б) найти самое длинное слово и его порядковый номер;

в) вывести каждое четное слово.

Строку инициализировать в коде программы:

So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid, whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.

В коде нельзя использовать указатели!!!!!!!
Вот я первых два пункта написал, но использовал указатели для 2 пункта. Я не могу придумать как 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
#include <iostream.h>
#include <ctype.h>
#include <string.h>
 
void main()
{
int i,n=0;
char str[300]="So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid,  whether  the  pleasure  of making a daisy-chain would be worth the trouble of getting up and  picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.",c;
//str="So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid,  whether  the  pleasure  of making a daisy-chain would be worth the trouble of getting up and  picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.";
for(i=0;i<300;i++)
{
    c=str[i];
    if (isspace(c)) n++;
}
cout<<"Number of word - "<<n+1<<endl;
 
int max,l;
char *p;
p=strtok(str," ,.!?:;");
while (p=strtok(NULL," ,.!?:;"))
{
    l=strlen(p);
    if (l>max) max=l;
}
cout<<"The max length of word - "<<max<<endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 20:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строки C++ (C++):

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки - C++
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки. 1. Я дуб дубом,даже...

Добавить строки, начиная со строки К1 и до строки К2, в динамический массив строк - C++
Есть динамический массив строк. Заполняется, т.е. размер его уже известен будет. Но дальше нужно сделать задание: &quot;Добавить строки, начиная...

Удалить строки динамической матрицы, начиная со строки К1 и до строки К2 - C++
Сформировать динамический двумерный массив, заполнить его случайными числами и удалить строки, начиная со строки К1 и до строки К2 вот...

Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка содер-жится в ней - C++
Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции первой строки, с которой вторая строка...

Указать номер строки, максимально удаленной от первой строки заданной матрицы - C++
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от j=1 до N от (abs(akj)*abs(a1j)). Указать...

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++
&quot;Даны строки A и B. Если в A есть латинские буквы, а в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
26.11.2011, 22:12 #2
qwe12355, создайте двухмерный массив символов и заполните словами
qwe12355
7 / 7 / 0
Регистрация: 26.11.2011
Сообщений: 117
27.11.2011, 11:58  [ТС] #3
а как это сделать?
qwe12355
7 / 7 / 0
Регистрация: 26.11.2011
Сообщений: 117
02.12.2011, 17:22  [ТС] #4
нікто не подскажет? нет?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
02.12.2011, 17:28 #5
первый цикл будет перебирать весь текст
переменные int number,clova (*char)[]
если первый символ не пробел продолжаем цикл
иначе
начинаем посимвольно записовать слово в clova(увеличиваем счётчик первого цикла) (символом окончания служит тот же пробел)
когда запись слова завершена number увеличиваем на один
qwe12355
7 / 7 / 0
Регистрация: 26.11.2011
Сообщений: 117
02.12.2011, 17:52  [ТС] #6
меня 3 пункт больше интересует
Dekio
Фрилансер
Эксперт С++
5837 / 1218 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
02.12.2011, 18:13 #7
Цитата Сообщение от qwe12355 Посмотреть сообщение
меня 3 пункт больше интересует
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
 
int main()
{
    std::string Str = "So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid, whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.";
    std::size_t end, beg = Str.find_first_not_of(" .,");
    int Cnt = 0;
    while(beg!=std::string::npos)
    {
        end = Str.find_first_of(" .,", beg);
        Cnt++;
        if(!(Cnt%2))
            std::cout<<Str.substr(beg, end-beg)<<" ";
        beg = Str.find_first_not_of(" .,", end);
    }
    std::cout<<std::endl
    system("pause");
    return 0;
}
Или

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string Str = "So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid, whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.";
    std::istringstream ist(Str);
    int Cnt = 0;
    while(ist>>Str)
    {
        Cnt++;
        if(!(Cnt%2))
            std::cout<<Str<<" ";
    }
    std::cout<<std::endl;
    system("pause");
    return 0;
}
Или С-вариант

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>
 
int main()
{
    char Str [] = "So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid, whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her.";
    char *p = strtok(Str," .,");
    int Cnt = 1;
    while(p = strtok(NULL," .,"))
    {
        Cnt++;
        if(!(Cnt%2))
            printf("%s ",p);
    }
    getch();
    return 0;
}
qwe12355
7 / 7 / 0
Регистрация: 26.11.2011
Сообщений: 117
02.12.2011, 18:45  [ТС] #8
Спасибо большое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 18:45
Привет! Вот еще темы с ответами:

Чтение через fscanf_s части строки с пробелом (и запись этой же строки) - C++
нужно записать в файл строку, содержащую через табуляцию int, char, char, char, float, int. Далее необходимо из такой же строки вывести...

Как первые два символа строки переставить в конец этой строки? - C++
Собственно вопрос

Найти среднее арифметическое каждой строки матрицы и отсортировать строки по возрастанию - C++
Дана квадратная матрица. Найти среднее арифметическое каждой строки и отсортировать строки по возрастанию этих характеристик

Как считать строки из файла, если там больше одной строки? - C++
Как считать строки из файла в массив. Если в файле одна строка, то нет проблем, но если несколько, то при использовании функции fgets ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.12.2011, 18:45
Ответ Создать тему
Опции темы

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