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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.70
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
#1

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

12.12.2013, 20:31. Просмотров 2730. Ответов 36
Метки нет (Все метки)

нужно составить текст программы, которая позволяет по введенной строке поменять первые буквы каждого слова на прописные. Вывести на экран символьную строку до и после изменения.

p.s:знаю только как на паскале написать, а нужно на С++; приветствую любую помощь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2013, 20:31     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные
Посмотрите здесь:

C++ Написать программу, которая будет подсчитывать количество гласных букв в строке, введенной с клавиатуры.
Посчитать количество слов во введенной строке и найти слова, которые начинаются с буквы t C++
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы. C++
Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину каждого слова C++
Составить строку, содержащую первые буквы из каждого слова заданного предложения C++
C++ У каждого слова введенной строки поменять местами первую и последнюю букву.
Написать программу перевода строчных букв в прописные буквы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 21:38  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #21
написал по своему и вот что вышло... что это за буквы м как их убрать?
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,975
Завершенные тесты: 1
14.12.2013, 22:31     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #22
i1 - другая переменная, индекс цикла меняется от нуля до i.
Прошу прощения внутри цикла str[i1][j];
А по j Надо перебирать все символы до терминального нуля,
который стоит в конце строки. Все, что после него и выводится как буквы М.
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 22:49  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #23
вот что получается не выводит целую строку а только последнее слово 2 раза...
как это исправить? и что такое терминальный ноль?
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 22:51  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #24
к предыдущему забыл прикрепить..
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,975
Завершенные тесты: 1
15.12.2013, 11:18     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #25
Цитата Сообщение от drovosek-95 Посмотреть сообщение
что такое терминальный ноль?
Интересно, а о чем Вы думали когда писали
C++
1
           str[i][j++] = '\0';
Добавлено через 10 минут
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <conio.h>
#include<locale.h>  
#define N 30
#define M 21
int main()
{
    char str[N][M];
    int i, j, v;
    i = 0;
    j = 0;
    setlocale(LC_ALL, "Russian");
    printf("Введите предложение\n");
    while (1)
    {
        v = getchar();
        if ((v == '!') || (v == '?') || (v == '.') || v=='\n')
        {
            str[i][j] = '\0';
            i++;
            break;
        }
        if ((v >= 'a') && (v <= 'z') || (v >= 'A') && (v <= 'Z') || (v == ' '))
        {
        }
        else
        {
            printf("Ошибка:недопустимый символ\n");
            return 0;
        }
        if (v != ' ')
            str[i][j++] = v;
        if (j > 21)
        {
            printf("Ошибка:слишком длинное слово\n");
            return 0;
        }
 
        if (v == ' ')
        {
            str[i][j++] = '\0';
            i++;
            j = 0;
        }
        if (i > 31)
        {
            printf("Ошибка:слишком длинное предложение\n");
            return 0;
        }
    }
    for(int i1=0;i1<i;i1++)
    {
        for(int j=0;str[i1][j];j++)
           printf("%c",str[i1][j]);
        printf("\n");
    }
    _getch();
}
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 11:33  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #26
последнее слово не печатает
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,975
Завершенные тесты: 1
15.12.2013, 12:03     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #27
А Вы это исправление сделали:
C++
1
2
3
4
5
6
        if ((v == '!') || (v == '?') || (v == '.') || v=='\n')
        {
            str[i][j] = '\0';
            i++;
            break;
        }
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 12:22  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #28
а исправлять где? в самом условии вначале? где проверяется введенная пользователем строка?

Добавлено через 3 минуты
и еще у меня ругается на _getch();
пишет что идентификатор не определен
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 13:14  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #29
нужно исправить ошибки(они подчеркнуты красным) см фото

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <stdio.h>
#include <string.h>
#include<locale.h>  
#include <ctype.h>
#define N 30
#define M 21
int main()
{
    char str[N][M];
    int i, i1 = 0, j, v,y;
    i = 0;
    j = 0;
    setlocale(LC_ALL, "Russian");
    printf("Введите предложение\n");
    while (1)
    {
        v = getchar();
        if ((v == '!') || (v == '?') || (v == '.') || (v == '\n'))
        {
            str[i][j] = '\0';
            i++;
            y = i;
            break;
        }
        if ((v >= 'a') && (v <= 'z') || (v >= 'A') && (v <= 'Z') || (v == ' '))
        {
        }
        else
        {
            printf("Ошибка:недопустимый символ\n");
            return 0;
        }
        if (v != ' ')
        {
            str[i][j++] = v;
        }
        if (j > 21)
        {
            printf("Ошибка:слишком длинное слово\n");
            return 0;
        }
 
        if (v == ' ')
        {
            str[i][j++] = '\0';
            i++;
            j = 0;
        }
        if (i > 31)
        {
            printf("Ошибка:слишком длинное предложение\n");
            return 0;
        }
    }
    printf("Ваше предложение\n");
    for (i1 = 0; i1 < y; i1++)
    {
        for (j = 0; str[i1][j]; j++)
            printf("%c", str[i1][j]);
        printf(" ");
    }
    _getch();
 
    bool newWord = true; // это переменная типа булево, принимает значения "Ложь" или "Истина"
    for (i = 0; i < strlen(str); i++) // цикл по всей длине строки-массива
    {
        if (str[i][j] == ' ') // если текущий символ строки равен пробелу
            newWord = true; // ставим значение "Истина" для переменной newWord
        if (str[i][j] >= 'A' && str[i][j] <= 'Z') // если текущий символ в верхнем регистре анг. алфавита
            if (newWord) // если переменная newWord равна "Истина"
            {
                str[i][j] = tolower(str[i][j]); // переводим текущий символ в нижний регистр
                newWord = false; // устанавливаем переменную newWord в значение "Ложь"
            }
    }
    printf("Измененное предложение\n");
    for (i1 = 0; i1 < y; i1++)
    {
        for (j = 0; str[i1][j]; j++)
            printf("%c", str[i1][j]);
        printf(" ");
    }
    _getch();
}
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
15.12.2013, 13:16     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #30
Программа написана на языке Си, в котором нет типа bool и ключевых слов true и false.
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 13:19  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #31
а чем их можно заменить чтобы смысл остался такой же?
как исправить?
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
15.12.2013, 13:21     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #32
int, 1 и 0 соответственно.
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 13:29  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #33
а можно поподробней? я не очень понимаю
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
15.12.2013, 13:30     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #34
int вместо bool, 1 вместо true, 0 вместо false.
zss
Модератор
Эксперт С++
6242 / 5845 / 1891
Регистрация: 18.12.2011
Сообщений: 14,975
Завершенные тесты: 1
15.12.2013, 13:34     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #35
В посте номер 8 я ведь привел ПОЛНЫЙ код.
Скопируйте его весь.
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 14:08  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #36
у меня не переводит в нижний регистр... в чем может быть проблема?(ТОЛЬКО ПЕРВАЯ БУКВА КАЖДОГО СЛОВА ДОЛЖНА ПЕРЕВОДИТСЯ В НИЖНИЙ РЕГИСТР)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <string.h>
#include<locale.h>  
#include <ctype.h>
#define N 30
#define M 21
int main()
{
    char str[N][M];
    int i, i1 = 0, j, v, y, proverka;
    i = 0;
    j = 0;
    setlocale(LC_ALL, "Russian");
    printf("Введите предложение\n");
    while (1)
    {
        v = getchar();
        if ((v == '!') || (v == '?') || (v == '.') || (v == '\n'))
        {
            str[i][j] = '\0';
            i++;
            y = i;
            break;
        }
        if ((v >= 'a') && (v <= 'z') || (v >= 'A') && (v <= 'Z') || (v == ' '))
        {
        }
        else
        {
            printf("Ошибка:недопустимый символ\n");
            return 0;
        }
        if (v != ' ')
        {
            str[i][j++] = v;
        }
        if (j > 21)
        {
            printf("Ошибка:слишком длинное слово\n");
            return 0;
        }
 
        if (v == ' ')
        {
            str[i][j++] = '\0';
            i++;
            j = 0;
        }
        if (i > 31)
        {
            printf("Ошибка:слишком длинное предложение\n");
            return 0;
        }
    }
    printf("Ваше предложение\n");
    for (i1 = 0; i1 < y; i1++)
    {
        for (j = 0; str[i1][j]; j++)
            printf("%c", str[i1][j]);
        printf(" ");
    }
    //_getch(); 
    for (i1 = 0; i1 < y; i1++) // цикл по всей длине строки-массива
    {
        for (j = 0; str[i1][j]; j++)
        {
 
            if (str[i1][j] == ' ') // если текущий символ строки равен пробелу
                proverka = 1; // ставим значение "Истина" для переменной newWord
            if (str[i1][j] >= 'A' && str[i1][j] <= 'Z') // если текущий символ в верхнем регистре анг. алфавита
                if (proverka == 1) // если переменная newWord равна "Истина"
                {
                    str[i1][j] = tolower(str[i1][j]); // переводим текущий символ в нижний регистр
                    proverka = 0; // устанавливаем переменную newWord в значение "Ложь"
                }
        }
    }
    printf("\nИзмененное предложение\n");
    for (i1 = 0; i1 < y; i1++)
    {
        for (j = 0; str[i1][j]; j++)
            printf("%c", str[i1][j]);
        printf(" ");
    }
    //_getch();
}
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 15:21     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные
Еще ссылки по теме:

Написать программу, которая удаляет в строке все буквы b в тексте, написанном латинскими буквами C++
Записать в файл слова отличные от последнего предварительно удаляя первые буквы из каждого слова C++
Написать программу добавления слова «hello» после первого слова введенной строки C++
Написать программу, которая удаляет из текстового файла слова, начинающиеся и оканчивающиеся на гласные буквы C++
C++ Написать программу добавления слова «hello» после первого слова введенной строки

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

Или воспользуйтесь поиском по форуму:
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 15:21  [ТС]     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные #37
кажется ошибка в 73 строке
Yandex
Объявления
15.12.2013, 15:21     Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные
Ответ Создать тему
Опции темы

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