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

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

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

Напечатать все слова, отличные от последнего слова - C++

25.02.2012, 12:25. Просмотров 1035. Ответов 8
Метки нет (Все метки)

Болела пропустила лекции на эту тему
помогите разобраться
напишите код и объясните почему именно так и где что значит
все должно быть чисто на си)

Дана строка, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами – не менее одного пробела, за последним словом – точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу:
задание 1)Удалить из слова первую букву
задание 2)Удалить из слова все последующие вхождения первой буквы
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 12:25     Напечатать все слова, отличные от последнего слова
Посмотрите здесь:
C++ Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова
Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них C++
C++ Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по заданному правилу
Напечатать все слова, отличные от последнего слова. C++
C++ Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв. Напечатать все слова, отличные от последнего слова
C++ Напечатать все слова отличные от последнего и удовлетворяющие следующему свойству:
Задан текст, напечатать слова этого текста отличные от последнего слова C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
26.02.2012, 11:39     Напечатать все слова, отличные от последнего слова #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
#include <stdio.h>
#include <string.h>
 
int main()
{
    char s[] = "gfdgf  DcdvvD nbvrfnfg khjkjhf  dcdvv  chg cc dcdvv.", *p = NULL, *del = " .", *arr[30] = {NULL},
    size, j, *a = NULL, *b = NULL;
    for(p = strtok(s, del), size = 0; p; p = strtok(NULL, del), ++size)
    {
        for(a = p, b = p, j = *p; *b = *a; ++a)
        {
            if(*b != j) ++b;
        }
        arr[size] = p;
    }
    for(j = 0; j < size; ++j)
    {
        if(strcmp(arr[j], arr[size - 1]))
        {
            puts(arr[j]);
        }
    }
    return 0;
}
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
26.02.2012, 12:34  [ТС]     Напечатать все слова, отличные от последнего слова #3
Цитата Сообщение от igorrr37 Посмотреть сообщение
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
#include <stdio.h>
#include <string.h>
 
int main()
{
    char s[] = "gfdgf  DcdvvD nbvrfnfg khjkjhf  dcdvv  chg cc dcdvv.", *p = NULL, *del = " .", *arr[30] = {NULL},
    size, j, *a = NULL, *b = NULL;
    for(p = strtok(s, del), size = 0; p; p = strtok(NULL, del), ++size)
    {
        for(a = p, b = p, j = *p; *b = *a; ++a)
        {
            if(*b != j) ++b;
        }
        arr[size] = p;
    }
    for(j = 0; j < size; ++j)
    {
        if(strcmp(arr[j], arr[size - 1]))
        {
            puts(arr[j]);
        }
    }
    return 0;
}


а вы не могли бы объяснить мне какие команды что выполняют?
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
26.02.2012, 12:57     Напечатать все слова, отличные от последнего слова #4
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 <stdio.h>// puts
#include <string.h>// strtok, strcmp
 
int main()
{
    char s[] = "gfdgf  DcdvvD nbvrfnfg khjkjhf  dcdvv  chg cc dcdvv.", //исходная строка слов и разделителей
    *del = " .", // разделители слов(пробел и точка)
    *arr[30] = {NULL}, // контейнер для хранения слов(обнуляем его содержимое)
    size, j, *a = NULL, *p = NULL, *b = NULL;// нужные в дальнейшем переменные
    for(p = strtok(s, del), size = 0; p; p = strtok(NULL, del), ++size) // разбиваем строку на слова и подсчитываем их количество в size
    {
        for(a = p, b = p, j = *p; *b = *a; ++a)// каждое слово очищаем от первой и равных ей букв
        {
            if(*b != j) ++b;
        }
        arr[size] = p; // и кладём слово в контейнер
    }
    for(j = 0; j < size; ++j)// для каждого слова в контейнере
    {
        if(strcmp(arr[j], arr[size - 1]))// если оно не равно последнему
        {
            puts(arr[j]);// выводим его на экран
        }
    }
    return 0;
}
http://www.cplusplus.com/reference/c...string/strcmp/
http://www.cplusplus.com/reference/c...string/strtok/
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
26.02.2012, 13:05  [ТС]     Напечатать все слова, отличные от последнего слова #5
Цитата Сообщение от igorrr37 Посмотреть сообщение
C
1
2
    {
        for(a = p, b = p, j = *p; *b = *a; ++a)// каждое слово очищаем от первой и равных ей букв
а как прописать чтобы он очищал слово только от первой буквы? но потом не очищал от равных ей букв?
и еше впорос как прописать так чтобы слова вводились с клавиатуры?
igorrr37
1641 / 1269 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
26.02.2012, 13:14     Напечатать все слова, отличные от последнего слова #6
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
#include <stdio.h>// puts, gets
#include <string.h>// strtok, strcmp
 
int main()
{
    char s[256], //исходная строка слов и разделителей
    *del = " .", // разделители слов(пробел и точка)
    *arr[30] = {NULL}, // контейнер для хранения слов(обнуляем его содержимое)
    size, j, *p = NULL;// нужные в дальнейшем переменные
    puts("Input string");
    gets(s);// ввод строки с консоли
    for(p = strtok(s, del), size = 0; p; p = strtok(NULL, del), ++size) // разбиваем строку на слова и подсчитываем их количество в size
    {
        arr[size] = p + 1; //каждое слово очищаем от первой буквы и кладём в контейнер
    }
    for(j = 0; j < size; ++j)// для каждого слова в контейнере
    {
        if(strcmp(arr[j], arr[size - 1]))// если оно не равно последнему
        {
            puts(arr[j]);// выводим его на экран
        }
    }
    return 0;
}
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
26.02.2012, 14:35  [ТС]     Напечатать все слова, отличные от последнего слова #7
мм спасибо)
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
18.03.2012, 15:40  [ТС]     Напечатать все слова, отличные от последнего слова #8
igorrr37,

а если надо найти в целочисленная квадратная матрица размера nxn, где 5≤n≤25 наибольшее из значений элементов столбца, который обладает наименьшей суммой модулей элементов.
и причем программа должа быть разбита на несколько функцийъ
Функцию формирования исходного массива,Функцию вывода исходного массива и одну или более функций, реализующих вычислительную часть алгоритма.
Все функции должны содержать список параметров, причем массив (матрица) должен передаваться как параметр функции.А основная программа должна содержать только операторы вызова подпрограмм.
как это написать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2012, 20:17     Напечатать все слова, отличные от последнего слова
Еще ссылки по теме:
С++ Задан текст напечатать слова отличные от последнего слова Visual Studio C++
ООП. Напечатать слова, отличные от последнего слова, предварительно преобразовав каждое из них по правилу C++
Дана последовательность слов.Напечатать все слова, отличные от слова «по» C++
C++ Дана строка. Напечатать все слова из нее , отличные от слова hello
C++ Между соседними словами – запятая, за последним словом – точка. Создать новый файл, содержащий все слова, отличные от последнего слова

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

Или воспользуйтесь поиском по форуму:
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
23.03.2012, 20:17  [ТС]     Напечатать все слова, отличные от последнего слова #9
больше не нужно
справилась сама)
Yandex
Объявления
23.03.2012, 20:17     Напечатать все слова, отличные от последнего слова
Ответ Создать тему
Опции темы

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