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

Буква из нижнего регистра в верхний - C++

Восстановить пароль Регистрация
 
Виталий5
 Аватар для Виталий5
6 / 6 / 1
Регистрация: 15.06.2013
Сообщений: 69
19.07.2013, 12:49     Буква из нижнего регистра в верхний #1
добрый день, цель задачи: Преобразование букв нижнего регистра в верхний регистр, используя неконстантный указатель на неконстантные данные.

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
#include <windows.h>
 
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <cctype>
using std::islower;
using std::toupper;
 
 
void convert( char * );
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
 
    char phrase[] = "my name";
 
    cout << "Before: " << phrase;
 
    convert( phrase );
 
    cout << "\n\nAfter: " << phrase;
 
 
    cout << endl;
    system("pause");
}
 
void xonvert( char *sPtr )
{
    while ( *sPtr != '\0' )
    {
        if ( islower( *sPtr ) )
            *sPtr = toupper ( *sPtr );
 
        sPtr++; 
    }
}
Компилятор ругается :error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl convert(char *)" (?convert@@YAXPAD@Z) в функции _main C:\Users\Vitaliy\Documents\Visual Studio 2012\Projects\Дейтел\Дейтел\Упражнения\Упражнения.obj


Пример из учебника Дейтел 8 глава, где же ошибка?(

Добавлено через 1 минуту
ой как нехорошо получилось, написал и нашел глупую ошибку((
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2013, 12:49     Буква из нижнего регистра в верхний
Посмотрите здесь:

написать функцию, которая в строке заменяет все символы верхенго регистра в символы нижнего регистра C++
C++ Символы из нижнего регистра перевести в верхний
C++ Написать функцию которая в строке заменяет все символы верхнего регистра в символы нижнего регистра
C++ как перевести букву из нижнего регистра в верхний C++
C++ Функция преобразует буквы верхнего регистра в строке s в буквы нижнего регистра
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2426 / 1598 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
19.07.2013, 12:50     Буква из нижнего регистра в верхний #2
Цитата Сообщение от Виталий5 Посмотреть сообщение
void convert( char * );
Цитата Сообщение от Виталий5 Посмотреть сообщение
void xonvert( char *sPtr )
Очепятка
Kordn
 Аватар для Kordn
152 / 131 / 35
Регистрация: 18.05.2013
Сообщений: 289
19.07.2013, 12:50     Буква из нижнего регистра в верхний #3
Цитата Сообщение от Виталий5 Посмотреть сообщение
void xonvert( char *sPtr )
Не xonvert, а convert!
Виталий5
 Аватар для Виталий5
6 / 6 / 1
Регистрация: 15.06.2013
Сообщений: 69
19.07.2013, 12:50  [ТС]     Буква из нижнего регистра в верхний #4
Спасибо, увидел)
Kordn
 Аватар для Kordn
152 / 131 / 35
Регистрация: 18.05.2013
Сообщений: 289
19.07.2013, 12:52     Буква из нижнего регистра в верхний #5
Виталий5, со всеми бывает
Удачи!
Виталий5
 Аватар для Виталий5
6 / 6 / 1
Регистрация: 15.06.2013
Сообщений: 69
19.07.2013, 13:12  [ТС]     Буква из нижнего регистра в верхний #6
Развиваю тему, программа переделывает в верхний регистр первую букву каждого слова:

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

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
#include <windows.h>
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
#include <cctype>
using std::islower;
using std::toupper;
 
void convert( char * );
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
 
    char phrase[] = "my name is vitaliy";
 
 
    cout << "Before: " << phrase;
 
    convert( phrase );
 
    cout << "\n\nAfter: " << phrase;
 
 
    cout << endl;
    system("pause");
}
 
void convert( char *sPtr )
{
    while ( *sPtr != '\0' )
    {
        if ( islower( *sPtr )  && ( *( sPtr - 1 )  == ' ' ) )
            *sPtr = toupper ( *sPtr );
 
        sPtr++; 
    }
}
Добавлено через 58 секунд
Before: my name is vitaliy

After: my Name Is Vitaliy
Для продолжения нажмите любую клавишу . . .

Добавлено через 8 минут
Вроде бы не плохо получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
void convert( char *sPtr )
{
    *sPtr = toupper( *sPtr );
 
    while ( *sPtr != '\0' )
    {
        if ( islower( *sPtr )  && ( *( sPtr - 1 )  == ' ' ) )
            *sPtr = toupper ( *sPtr );
 
        sPtr++; 
    }
}
Подскажите, а с кириллицей можно провернуть такую работу? попробовал написать :
char phrase[] = "меня зовут виталий";
Как-то не захотел компилятор менять регистр.
Yandex
Объявления
19.07.2013, 13:12     Буква из нижнего регистра в верхний
Ответ Создать тему
Опции темы

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