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

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

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

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

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

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

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

Написать программу, которая будет подсчитывать количество гласных букв в строке, введенной с клавиатуры. - C++
:wall: help

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

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

Составить строку, содержащую первые буквы из каждого слова заданного предложения - C++
Составить строку, содержащую первые буквы из каждого слова заданного предложения. Буду очень благодарен!)

Написать программу, которая удаляет из текстового файла слова, начинающиеся и оканчивающиеся на гласные буквы - C++
//Написать программу, которая удаляет из текстового файла слова, начинающиеся и оканчивающиеся на гласные буквы. #include <stdio.h> ...

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

36
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 23:06  [ТС] #16
спасибо
0
bradobrei
Продам уран 238U
119 / 119 / 23
Регистрация: 22.01.2013
Сообщений: 298
13.12.2013, 07:14 #17
я заменяю на рандомную прописную
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
int main(){
    srand(time(NULL));
    char str[] = "Ajhd hhjd Ahjd Fhmd wWmsdmn Rnc";
    if(str[0] >= 'A' && str[0] <= 'Z'){
        str[0] = ('a' + rand() % ('z' - 'a')); 
        cout<<str[0];
    }
    for(int i = 1; str[i]; i++){
        if(str[i] == ' '){
            str[i+1] = ('a' + rand() % ('z' - 'a')); 
            cout<<str[i+1];
        }
        cout<<str[i];
    }
return 0;
}
0
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 21:10  [ТС] #18
как вывести на печать строку которую ввел пользователь?

p.s: выводить нужно с помощью циклов и prinrf-ом. напишите
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
#include <stdio.h>
#include<locale.h>  
#define N 30
#define M 21
int main()
{
    char str[N][M];
    int i, j, v, b, z;
    i = 0;
    j = 0;
    setlocale(LC_ALL, "Russian");
    printf("Введите предложение\n");
    while (1)
    {
        v = getchar();
        if ((v == '!') || (v == '?') || (v == '.'))
            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;
        }
    }
}
0
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
14.12.2013, 21:16 #19
После выхода из цикла в переменной i хранится количество введенных строк.
Поэтому вывод будет такой
C++
1
2
3
4
5
6
for(int i1=0;i1<i;i1++)
{
    for(int j=0;str[i][j];j++)
           printf("%c",str[i][j]);
    printf("\n");
}
0
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 21:25  [ТС] #20
Цитата Сообщение от zss Посмотреть сообщение
C++
1
for(int i1=0;i1<i;i1++)
А зачем тут после i стоит 1
0
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 21:38  [ТС] #21
написал по своему и вот что вышло... что это за буквы м как их убрать?
0
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 1
14.12.2013, 22:31 #22
i1 - другая переменная, индекс цикла меняется от нуля до i.
Прошу прощения внутри цикла str[i1][j];
А по j Надо перебирать все символы до терминального нуля,
который стоит в конце строки. Все, что после него и выводится как буквы М.
0
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 22:49  [ТС] #23
вот что получается не выводит целую строку а только последнее слово 2 раза...
как это исправить? и что такое терминальный ноль?
0
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
14.12.2013, 22:51  [ТС] #24
к предыдущему забыл прикрепить..
0
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 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();
}
1
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 11:33  [ТС] #26
последнее слово не печатает
0
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
zss
Модератор
Эксперт С++
6537 / 6099 / 2009
Регистрация: 18.12.2011
Сообщений: 15,870
Завершенные тесты: 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;
        }
1
drovosek-95
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
15.12.2013, 12:22  [ТС] #28
а исправлять где? в самом условии вначале? где проверяется введенная пользователем строка?

Добавлено через 3 минуты
и еще у меня ругается на _getch();
пишет что идентификатор не определен
0
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();
}
0
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
Nick Alte
Эксперт С++
1641 / 1013 / 119
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
15.12.2013, 13:16 #30
Программа написана на языке Си, в котором нет типа bool и ключевых слов true и false.
1
15.12.2013, 13:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 13:16
Привет! Вот еще темы с ответами:

Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину каждого слова - C++
Написать программу, которая удаляет из текста пробелы между словами и записывает в массив N длину (число символов) каждого слова. Длина...

Написать программу перевода строчных букв в прописные буквы - C++
написать программу перевода строчных букв в прописные буквы.

Посчитать количество слов во введенной строке и найти слова, которые начинаются с буквы t - C++
Суть задания такова... 1-посчитать к-во слов во введенной строке. 2-Найти слова, которые начинаются с буквы t. 3-Тут главная проблема -...

Написать программу добавления слова «hello» после первого слова введенной строки - C++
Написать программу добавления слова «hello» после первого слова введенной строки C++


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

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

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