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

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

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

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

p.s:знаю только как на паскале написать, а нужно на С++; приветствую любую помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2013, 20:31
Ответы с готовыми решениями:

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

Заменить первые буквы слов в введённой строке на прописные
Запара вышла на лабораторной...

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

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


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

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
 Аватар для MicM
840 / 498 / 325
Регистрация: 29.12.2009
Сообщений: 1,106
12.12.2013, 21:42
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  [ТС]
у меня она не работает(
да и я не проходил таких функций как(count. bool.strcpy и.т.д)
я не понимаю этот код(
я совсем чайник ( на printf, scanf...)
0
27 / 22 / 13
Регистрация: 31.07.2013
Сообщений: 121
12.12.2013, 21:49
Цитата Сообщение от 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
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
12.12.2013, 21:54
Цитата Сообщение от petyahohlov Посмотреть сообщение
getline не определяет
Очень странно.
0
 Аватар для Yanush
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:11
Давайте так: я написал к каждой строчке комментарий. Вы пробуйте и напишите, что у вас выводит программа (или какую ошибку)

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  [ТС]
вот
Миниатюры
Во введенной строке поменять первые буквы каждого слова на прописные  
0
 Аватар для Yanush
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:33
А почему у Вас "Исходный код.с"?! Вы создавали на языке "с"? Если да то нужно создать консольный проект и выбрать язык "с++".
Миниатюры
Во введенной строке поменять первые буквы каждого слова на прописные  
0
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 22:39  [ТС]
одна ошибка
Миниатюры
Во введенной строке поменять первые буквы каждого слова на прописные  
0
 Аватар для iRomul
163 / 104 / 14
Регистрация: 17.10.2012
Сообщений: 488
12.12.2013, 22:42
Вам же написали - используйте sprintf_s или вставьте в самом начале файла
C++
1
#define _CRT_SECURE_NO_WARNINGS
1
 Аватар для Yanush
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:45
sprintf заменить на sprintf_s или в самом начале файла (первой строчкой) написать #define _CRT_SECURE_NO_WARNINGS
1
0 / 0 / 0
Регистрация: 10.11.2013
Сообщений: 27
12.12.2013, 22:51  [ТС]
спасибо! а можно сделать так, чтоб пользователь сам вводил строку?
0
 Аватар для Yanush
162 / 158 / 62
Регистрация: 28.09.2013
Сообщений: 293
12.12.2013, 22:56
Наверное можно.
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  [ТС]
спасибо
0
Продам уран 238U
 Аватар для bradobrei
126 / 125 / 127
Регистрация: 22.01.2013
Сообщений: 298
13.12.2013, 07:14
я заменяю на рандомную прописную
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  [ТС]
как вывести на печать строку которую ввел пользователь?

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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
14.12.2013, 21:16
После выхода из цикла в переменной 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  [ТС]
Цитата Сообщение от zss Посмотреть сообщение
C++
1
for(int i1=0;i1<i;i1++)
А зачем тут после i стоит 1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.12.2013, 21:25
Помогаю со студенческими работами здесь

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

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

Написать процедуру, оставляющую в каждой строке исходного текста только первые буквы каждого слова
Дан текстовый файл. Написать процедуру firsts, оставляющую в каждой строке исходного текста только первые буквы каждого слова. ...

Как поменять первые буквы на прописные(т.е. на заглавные) в listBox?
Получается изменить только все букв на заглавные, а надо только первые буквы слов { private void...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru