Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.95/111: Рейтинг темы: голосов - 111, средняя оценка - 4.95
1 / 1 / 0
Регистрация: 07.06.2009
Сообщений: 11
1

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

07.06.2009, 23:14. Показов 21726. Ответов 15
Метки нет (Все метки)

Препод задал задание написать программу перевода строки в верхний регистр без использования специальных фукций, сам перевод оформить в виде функции. Накидал программу:
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
// Program.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include <string.h>
#include <locale.h>
#include <ctype.h>
#include <malloc.h>
 
 
char* mp(char* st1)
{
    int i=0,j=0;
    int len=strlen(st1);
    while(i<len)
    {    
        if(st1[i]>='a'&& st1[i]<='z') st1[i]-=st1[i]-32;
        i++;
    }
  return st1;
}
int _tmain(int argc, _TCHAR* argv[])//тестер
{
    char* st1="qwerty123";  
    printf("Result: %s",mp(st1));
    _getch();
    return 0;
}
Но она завершается необработанным исключением, не подскажите в чём проблема?
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.06.2009, 23:14
Ответы с готовыми решениями:

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

Перевод текста в верхний регистр
Задание с самого начала было взять из текстового файла и после каждой точки (конец предложения)...

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

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

15
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
07.06.2009, 23:40 2
Так строку объяви:
C++
1
char st1[] = "qwerty123";
0
1 / 1 / 0
Регистрация: 07.06.2009
Сообщений: 11
08.06.2009, 08:16  [ТС] 3
Ага, спасибо. Помогло
0
║XLR8║
1209 / 911 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
06.11.2009, 12:30 4
А если строка уже в верхнем регистре??
0
Эксперт С++
4717 / 2538 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.11.2009, 12:48 5
outoftime, что это Вас заинтересовала такая старая тема?
Ответ на Ваш вопрос: если символ строки уже в верхнем регистре, то он таким же и останется (для этого в строке 18 делается проверка на принадлежность символа к нижнему регистру)
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
06.11.2009, 12:55 6
C++
1
2
std::string str("kgreiudrbnbnd");
std::transform(str.begin(), str.end(), str.begin(), toupper);
0
║XLR8║
1209 / 911 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
06.11.2009, 15:04 7
niXman без "вспомагательных функций"

надо руками все написать.. А заинтересовало, потому что я забыл как перевести строку в верхний или нижний регистры, а в задаче надо сказать какое слова встречается не к раз, без учета регистра, юзал мап, да и тему эту гуглом нашел..
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
06.11.2009, 15:19 8
Цитата Сообщение от outoftime Посмотреть сообщение
без "вспомагательных функций"
Смею заметить, это не "вспомагательные функций". Хотя вашу мысль понял.
0
║XLR8║
1209 / 911 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
06.11.2009, 18:10 9
C++
1
2
3
4
5
6
#define FOR(x,y,z) for (int (x) = (y); (x) < (z); ++(x))
//-------------------------------------------
        string s;
//-------------------------------------------
    FOR (i, 0, (int)s.size())
        s[i] = toupper(s[i]);
я обычно так делаю, только подзабыл малость..
0
423 / 227 / 87
Регистрация: 25.03.2009
Сообщений: 744
06.11.2009, 21:01 10
outoftime, toupper это вспомогательная функция )) а ему без неё нада
0
Эксперт С++
4717 / 2538 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
06.11.2009, 21:13 11
Андрейка,
outoftime, toupper это вспомогательная функция )) а ему без неё нада
кому ему?
0
║XLR8║
1209 / 911 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
06.11.2009, 21:25 12
Андрейка, эту тему находит гугл при поиске по ключу: перевод строки в верхний регистр, это своего рода заметка..
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 00:16 13
Андрейка, Таким макаром можно сказать что и "int main()" вспомогательная функция
0
║XLR8║
1209 / 911 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
07.11.2009, 00:30 14
niXman, погоди, но ведь ты ее сам пишешь..
0
Эксперт С++
3210 / 1458 / 73
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 00:33 15
outoftime, Ты про "int toupper(int)" ? Нет, она входит в комплект C-Library. А вот main() сам пишу(как и все).

Добавлено через 26 секунд
п.с. заканчиваем флуд. а то накажут нас
0
║XLR8║
1209 / 911 / 270
Регистрация: 25.07.2009
Сообщений: 4,370
Записей в блоге: 5
07.11.2009, 00:35 16
я к чему вел, ему перевод надо самому написать а не STL юзать, вот в чем проблема..

Не по теме:

niXman, ты FreeBSD юзал?

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2009, 00:35

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

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

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

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

Преобразование строки в верхний регистр
#include &lt;iostream&gt; #include &lt;cstring&gt; #include &lt;cctype&gt; #include &lt;string&gt; using namespace std;...


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

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

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