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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 79, средняя оценка - 4.76
KReoN
1 / 1 / 0
Регистрация: 07.06.2009
Сообщений: 11
#1

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

07.06.2009, 23:14. Просмотров 10489. Ответов 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;
}
Но она завершается необработанным исключением, не подскажите в чём проблема?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2009, 23:14     Перевод строки в верхний регистр
Посмотрите здесь:
перевод строки в верхний регистр C++
Перевод всех строчных букв в верхний регистр C++
C++ Перевод содержимого текстового файла в верхний регистр
Кроссплатформенный перевод русских букв в верхний/нижний регистр C++
Строки в С++. Верхний и нижний регистр C++
Преобразование строки в верхний регистр C++
Преобразование строки сначала в верхний регистр, потом в нижний C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FunDuck
688 / 379 / 4
Регистрация: 22.01.2009
Сообщений: 1,135
07.06.2009, 23:40     Перевод строки в верхний регистр #2
Так строку объяви:
C++
1
char st1[] = "qwerty123";
KReoN
1 / 1 / 0
Регистрация: 07.06.2009
Сообщений: 11
08.06.2009, 08:16  [ТС]     Перевод строки в верхний регистр #3
Ага, спасибо. Помогло
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
06.11.2009, 12:30     Перевод строки в верхний регистр #4
А если строка уже в верхнем регистре??
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
06.11.2009, 12:48     Перевод строки в верхний регистр #5
outoftime, что это Вас заинтересовала такая старая тема?
Ответ на Ваш вопрос: если символ строки уже в верхнем регистре, то он таким же и останется (для этого в строке 18 делается проверка на принадлежность символа к нижнему регистру)
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 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);
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
06.11.2009, 15:04     Перевод строки в верхний регистр #7
niXman без "вспомагательных функций"

надо руками все написать.. А заинтересовало, потому что я забыл как перевести строку в верхний или нижний регистры, а в задаче надо сказать какое слова встречается не к раз, без учета регистра, юзал мап, да и тему эту гуглом нашел..
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
06.11.2009, 15:19     Перевод строки в верхний регистр #8
Цитата Сообщение от outoftime Посмотреть сообщение
без "вспомагательных функций"
Смею заметить, это не "вспомагательные функций". Хотя вашу мысль понял.
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
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]);
я обычно так делаю, только подзабыл малость..
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
06.11.2009, 21:01     Перевод строки в верхний регистр #10
outoftime, toupper это вспомогательная функция )) а ему без неё нада
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
06.11.2009, 21:13     Перевод строки в верхний регистр #11
Андрейка,
outoftime, toupper это вспомогательная функция )) а ему без неё нада
кому ему?
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
06.11.2009, 21:25     Перевод строки в верхний регистр #12
Андрейка, эту тему находит гугл при поиске по ключу: перевод строки в верхний регистр, это своего рода заметка..
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 00:16     Перевод строки в верхний регистр #13
Андрейка, Таким макаром можно сказать что и "int main()" вспомогательная функция
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
07.11.2009, 00:30     Перевод строки в верхний регистр #14
niXman, погоди, но ведь ты ее сам пишешь..
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
07.11.2009, 00:33     Перевод строки в верхний регистр #15
outoftime, Ты про "int toupper(int)" ? Нет, она входит в комплект C-Library. А вот main() сам пишу(как и все).

Добавлено через 26 секунд
п.с. заканчиваем флуд. а то накажут нас
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2009, 00:35     Перевод строки в верхний регистр
Еще ссылки по теме:
C++ В верхний регистр
Верхний регистр в файле C++
C++ Верхний и нижний регистр
C++ Преобразование в верхний регистр
Верхний регистр символа C++

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

Или воспользуйтесь поиском по форуму:
outoftime
║XLR8║
506 / 428 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
07.11.2009, 00:35     Перевод строки в верхний регистр #16
я к чему вел, ему перевод надо самому написать а не STL юзать, вот в чем проблема..

Не по теме:

niXman, ты FreeBSD юзал?

Yandex
Объявления
07.11.2009, 00:35     Перевод строки в верхний регистр
Ответ Создать тему
Опции темы

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