Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Iridze
1 / 1 / 0
Регистрация: 22.02.2017
Сообщений: 95
1

Перевод текста в верхний регистр

05.12.2017, 19:11. Просмотров 198. Ответов 7
Метки нет (Все метки)

Задание с самого начала было взять из текстового файла и после каждой точки (конец предложения) должен быть пробел. Это я сделала. А вот дальше надо сделать так, чтобы первая буква нового предложения была большой. Ф-я для перехода из нижнего и верхнего регистра - _strupr_s, но я не очень понимаю, как ее поставить в мою программу.
строка 28 : _strupr_s((d[k+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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string.h>
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i,k;
    char y[100],d[100];
    char *p=d;
    ifstream file("data.txt");
    file.getline(y, 100);
    
    file.close(); 
    cout << y << endl;
 
    k=0;
    for ( i= 0; i < strlen(y); i++, k++)
    {
        d[k]=y[i];
        if (y[i] == '.')
        {
            d[++k] = ' ';
            _strupr_s((d[k+2]));
        }
    }
    d[k]='\0';
    
    
    cout << d << endl;
    
 
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2017, 19:11
Ответы с готовыми решениями:

Перевод строки в верхний регистр
Добрый вечер. Вопрос такой. Есть строка, как превести всё её содержание в...

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

Перевод строки в верхний регистр
Препод задал задание написать программу перевода строки в верхний регистр без...

Перевод всех строчных букв в верхний регистр
Переведите все строчные буквы-символы в верхний регистр

Перевод содержимого текстового файла в верхний регистр
Собственно вопрос в шапке. Как перевести всё содержимое текстового файла в...

7
nmcf
6408 / 5670 / 2581
Регистрация: 14.04.2014
Сообщений: 23,997
05.12.2017, 19:24 2
Ну открой документацию и посмотри. Там же два параметра и на входе строка, а не 1 символ: https://msdn.microsoft.com/ru-ru/library/sae941fh.aspx
0
Iridze
1 / 1 / 0
Регистрация: 22.02.2017
Сообщений: 95
10.12.2017, 16:20  [ТС] 3
По заданию, я должна была считать из файла текст, после точек поставить пробелы и первые буквы предложений перевести в верхний регистр.
А вот с регистром и проблемы.
_strupr_s(y, 100); переводить тупо все буквы массива. При попытке сделать только для одного элемента, ничего не выходит.
Очень буду благодарна, если вы поможете.


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
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <string.h>
 
 
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int i, k;
    char y[100], d[100];
    char *p = d;
    ifstream file("data.txt");
    file.getline(y, 100);
 
    file.close();
    cout << y << endl;
    k = 0;
    for (i = 0; i < strlen(y); i++, k++)
    {
    
 
        d[k] = y[i];
        if (y[i] == '.')
        {
            d[++k] = ' ';
            
        }
    }
    d[k] = '\0';
    cout << d << endl;
 
    
 
    system("pause");
    return 0;
}
0
DobroAlex
Модератор
392 / 334 / 165
Регистрация: 30.04.2016
Сообщений: 1,719
Завершенные тесты: 3
10.12.2017, 16:43 4
Iridze,
 Комментарий модератора 
Не балуйтесь дублями, горчичников на всех хватит


Добавлено через 3 минуты
Iridze, вы передаёте ей один символ вместо массива и не указываете локаль, читайте документацию
https://msdn.microsoft.com/ru-ru/library/sae941fh.aspx
0
nmcf
6408 / 5670 / 2581
Регистрация: 14.04.2014
Сообщений: 23,997
10.12.2017, 16:55 5
Цитата Сообщение от Iridze Посмотреть сообщение
При попытке сделать только для одного элемента
toupper() используй.
0
Iridze
1 / 1 / 0
Регистрация: 22.02.2017
Сообщений: 95
10.12.2017, 16:59  [ТС] 6
Все-равно не очень понимаю ,что вы имеете ввиду.
В документации для strupr есть только 2 варианта.

C++
1
2
3
4
5
6
7
8
errno_t _strupr_s(  
   char *str,  
   size_t numberOfElements  
);  
template <size_t size>  
errno_t _strupr_s(  
   char (&str)[size]  
); // C++ only
0
Starfer
61 / 56 / 58
Регистрация: 30.11.2017
Сообщений: 128
Завершенные тесты: 3
10.12.2017, 17:03 7
Ещё есть такой вариант:
C++
1
d[k+2] -= 32;
0
nmcf
6408 / 5670 / 2581
Регистрация: 14.04.2014
Сообщений: 23,997
10.12.2017, 17:03 8
Цитата Сообщение от Iridze Посмотреть сообщение
не очень понимаю ,что вы имеете ввиду
Функция работает только с целой строкой. Что использовать, я написал выше.
0
10.12.2017, 17:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2017, 17:03

Не работает перевод в верхний регистр с русскими буквами
Не работает перевод в верхний регистр с русскими буквами в VS #include...

Кроссплатформенный перевод русских букв в верхний/нижний регистр
Добрый день. В прикрепленном топике описываются способы вывода русских букв на...

Необходимо преобразить символы текста в верхний регистр
Пользователь вводит произвольный текст. Необходимо преобразовать символы...


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

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

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