С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Дана строка, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами – не менее одного пробела, за последним словом – точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу:
задание 1)Удалить из слова первую букву
задание 2)Удалить из слова все последующие вхождения первой буквы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.02.2012, 12:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напечатать все слова, отличные от последнего слова (C++):

Напечатать все слова отличные от последнего слова, предварительно перенести последнюю букву в начало слова - C++
Дано текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела....

Напечатать все слова, отличные от последнего слова строки, удалив из каждого слова первую и последнюю буквы - C++
Близиться сессия,а завтра мне сдавать 2 проги. Помогите ребят,могу даже 100 скинуть,если уж так трудно помочь. 8.Задан...

Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них - C++
Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела....

Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по заданному правилу - C++
Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела....

Напечатать все слова, отличные от последнего слова. - C++
В файле дана непустая последовательность слов, содержащая от 1 до 8 букв; между соседними словами – запятая, за последним словом точка....

Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв. Напечатать все слова, отличные от последнего слова - C++
дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв, между соседними словами - не менее одного пробела....

8
igorrr37
1648 / 1276 / 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;
}
1
лизи
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;
}


а вы не могли бы объяснить мне какие команды что выполняют?
0
igorrr37
1648 / 1276 / 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/clibrary/cstring/strcmp/
http://www.cplusplus.com/reference/clibrary/cstring/strtok/
2
лизи
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)// каждое слово очищаем от первой и равных ей букв
а как прописать чтобы он очищал слово только от первой буквы? но потом не очищал от равных ей букв?
и еше впорос как прописать так чтобы слова вводились с клавиатуры?
0
igorrr37
1648 / 1276 / 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;
}
2
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
26.02.2012, 14:35  [ТС] #7
мм спасибо)
0
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
18.03.2012, 15:40  [ТС] #8
igorrr37,

а если надо найти в целочисленная квадратная матрица размера nxn, где 5≤n≤25 наибольшее из значений элементов столбца, который обладает наименьшей суммой модулей элементов.
и причем программа должа быть разбита на несколько функцийъ
Функцию формирования исходного массива,Функцию вывода исходного массива и одну или более функций, реализующих вычислительную часть алгоритма.
Все функции должны содержать список параметров, причем массив (матрица) должен передаваться как параметр функции.А основная программа должна содержать только операторы вызова подпрограмм.
как это написать?
0
лизи
0 / 0 / 0
Регистрация: 14.11.2011
Сообщений: 104
23.03.2012, 20:17  [ТС] #9
больше не нужно
справилась сама)
0
23.03.2012, 20:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2012, 20:17
Привет! Вот еще темы с ответами:

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

Задан текст, напечатать слова этого текста отличные от последнего слова - C++
Задан текст.напечатать слова этого текста отличные от последнего слова удалить в каждом из них первую букву. Нужно сделать именно через...

С++ Задан текст напечатать слова отличные от последнего слова Visual Studio - C++
Здравствуйте, вопрос такой, я написал программу через функции Её условие заключается в том, что задан текст напечатать все слова...

ООП. Напечатать слова, отличные от последнего слова, предварительно преобразовав каждое из них по правилу - C++
Напечатать слова, отличные от последнего слова, предварительно преобразовав каждое из них по правилу: удалить из слова первую букву....


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

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

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