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

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

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

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

p.s:знаю только как на паскале написать, а нужно на С++; приветствую любую помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2013, 20:31
Ответы с готовыми решениями:

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

Написать программу, которая распечатывает все буквы, которых нет в введенной строке
Помогите, если можете

От каждого слова в строке оставить только первые 3 буквы.
Дана строка. От каждого слова оставить только первые 3 буквы. Например, вводим "мама мыла раму",...

Строки. Заменить все первые буквы каждого слова во введенной фразе цифрой "1"
Написать программу, которая заменяет все первые буквы каждого слова во введенной фразе цифрой "1"....

36
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 20:54  [ТС] 2
составить текст программы, которая позволяет по введенной строке поменять первые буквы каждого слова на прописные. Вывести на экран символьную строку до и после изменения


P.S:приветствую любую помощь, у меня идей даже нет
0
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 21:27 3
Пробуйте.

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
#include <iostream>
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    char *str = new char[100];
    strcpy(str,"123    F FDFds Ffsdf 123 Fshsdf. FGfffd");
 
    std::cout << str << "\n";
 
    bool newWord = true;
    for (int i = 0; i < strlen(str); i++)
    {
        if (str[i] == ' ')
            newWord = true;
 
        if (str[i] >= 'A' && str[i] <= 'Z')
            if (newWord)
            {
                str[i] = tolower(str[i]);
                newWord = false;
            }
    }   
    std::cout << str << "\n";
 
    delete [] str;
    str = nullptr;
 
    system("pause");
    return 0;
}
1
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
12.12.2013, 21:42 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cctype>
 
int main()
{
    std::string str;
    getline (std::cin, str);
    unsigned int i = 0;
    while (i<str.size())
    {
        if (isalpha(str[i]))
        {
            str[i] = toupper(str[i]);
            while (i<str.size() && isalpha(str[i]))
                ++i;
        }
        else ++i;
    }
    std::cout <<str <<std::endl;
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 21:44  [ТС] 5
у меня она не работает(
да и я не проходил таких функций как(count. bool.strcpy и.т.д)
я не понимаю этот код(
я совсем чайник ( на printf, scanf...)
0
27 / 22 / 13
Регистрация: 31.07.2013
Сообщений: 121
12.12.2013, 21:49 6
Цитата Сообщение от MicM Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string>
#include <cctype>
 
int main()
{
    std::string str;
    getline (std::cin, str);
    unsigned int i = 0;
    while (i<str.size())
    {
        if (isalpha(str[i]))
        {
            str[i] = toupper(str[i]);
            while (i<str.size() && isalpha(str[i]))
                ++i;
        }
        else ++i;
    }
    std::cout <<str <<std::endl;
    return 0;
}
getline не определяет
0
2062 / 618 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.12.2013, 21:54 7
Цитата Сообщение от petyahohlov Посмотреть сообщение
getline не определяет
Очень странно.
0
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:11 8
Давайте так: я написал к каждой строчке комментарий. Вы пробуйте и напишите, что у вас выводит программа (или какую ошибку)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[100]; // создаем массив символов длиной в 100
    memset(&str, 0, sizeof(str)); // очищаем память массива от "мусора"
    sprintf(str, "%s", " HG 123 D 4Dfds 63DDgfdf 234 Dfsdgs FsdF"); // пишем в наш массив строку
    std::cout << str << "\n"; // выводим в консоль
    bool newWord = true; // это переменная типа булево, принимает значения "Ложь" или "Истина"
    for (int i = 0; i < strlen(str); i++) // цикл по всей длине строки-массива
    {
        if (str[i] == ' ') // если текущий символ строки равен пробелу
            newWord = true; // ставим значение "Истина" для переменной newWord
        if (str[i] >= 'A' && str[i] <= 'Z' && newWord) // если текущий символ в верхнем регистре анг. алфавита и переменная newWord равна "Истина"
            {
                str[i] = tolower(str[i]); // переводим текущий символ в нижний регистр
                newWord = false; // устанавливаем переменную newWord в значение "Ложь"
            }
    }   
    std::cout << str << "\n"; // выводим ещё раз нашу строку в консоль
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 22:25  [ТС] 9
вот
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
0
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:33 10
А почему у Вас "Исходный код.с"?! Вы создавали на языке "с"? Если да то нужно создать консольный проект и выбрать язык "с++".
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
0
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 22:39  [ТС] 11
одна ошибка
Миниатюры
Написать программу, которая позволяет во введенной строке поменять первые буквы каждого слова на прописные  
0
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
12.12.2013, 22:42 12
Вам же написали - используйте sprintf_s или вставьте в самом начале файла
C++
1
#define _CRT_SECURE_NO_WARNINGS
1
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:45 13
sprintf заменить на sprintf_s или в самом начале файла (первой строчкой) написать #define _CRT_SECURE_NO_WARNINGS
1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 22:51  [ТС] 14
спасибо! а можно сделать так, чтоб пользователь сам вводил строку?
0
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:56 15
Наверное можно.
C++
1
2
sprintf_s(str, "%s", " HG 123 D 4Dfds 63DDgfdf 234 Dfsdgs FsdF"); // вот это можно удалить и заменить на
std::cin.get(str, 100); // 100 это размер строки. Столько же, сколько мы указывали в str[100].
1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 23:06  [ТС] 16
спасибо
0
Продам уран 238U
125 / 124 / 127
Регистрация: 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
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
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,704
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
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
14.12.2013, 21:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2013, 21:25
Помогаю со студенческими работами здесь

Написать программу, которая сортирует прописные русские буквы по возрастанию
Написать программу, которая сортирует прописные русские буквы по возрастанию методом пузырька

Поменять местами 1-ю и 3-ю буквы каждого слова в строке
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены...

Составьте программу которая позволяет ввести строку S затем замените все буквы ''и'' в ведённой строке на ''e''
Составьте программу которая позволяет ввести строку S затем замените все буквы ''и'' в ведённой...

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


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

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