Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
7 / 7 / 1
Регистрация: 26.11.2011
Сообщений: 117
1

Строки C++

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

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста.

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

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

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

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

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

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;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2011, 20:42
Ответы с готовыми решениями:

Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки частью второй строки
Сгенерировать две произвольные строки и определить, является ли какое-либо слово первой строки...

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

Удалить строки, начиная со строки К1 и до строки К2 (динамические массивы)
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;stdlib.h&gt; using namespace std; int main() {...

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

7
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
26.11.2011, 22:12 2
qwe12355, создайте двухмерный массив символов и заполните словами
0
7 / 7 / 1
Регистрация: 26.11.2011
Сообщений: 117
27.11.2011, 11:58  [ТС] 3
а как это сделать?
0
7 / 7 / 1
Регистрация: 26.11.2011
Сообщений: 117
02.12.2011, 17:22  [ТС] 4
нікто не подскажет? нет?
0
290 / 193 / 23
Регистрация: 03.08.2011
Сообщений: 2,824
Записей в блоге: 12
02.12.2011, 17:28 5
первый цикл будет перебирать весь текст
переменные int number,clova (*char)[]
если первый символ не пробел продолжаем цикл
иначе
начинаем посимвольно записовать слово в clova(увеличиваем счётчик первого цикла) (символом окончания служит тот же пробел)
когда запись слова завершена number увеличиваем на один
0
7 / 7 / 1
Регистрация: 26.11.2011
Сообщений: 117
02.12.2011, 17:52  [ТС] 6
меня 3 пункт больше интересует
0
Фрилансер
Эксперт С++
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 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;
}
0
7 / 7 / 1
Регистрация: 26.11.2011
Сообщений: 117
02.12.2011, 18:45  [ТС] 8
Спасибо большое
0
02.12.2011, 18:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2011, 18:45
Помогаю со студенческими работами здесь

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

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

Указать номер строки, максимально удаленной от первой строки заданной матрицы
Задание: Расстояние между k-й и 1-й строками квадратной матрицы А опеределяется как r = сумма от...

Переписать все строки файла удаляя пробелы в конце каждой строки
Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru