Mike. |
Отправлено: 01.05.2006, 11:16 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 1
|
Вроде все просто,но ошибку найти не могу.
Прога дожна конвертить маленкие буквы в заглавные, выдает ошибку на этапе исполнения.
CODE |
#include <iostream.h>
char *string_uppercase(char* string)
{
char *starting_address = string; // адрес string[0];
int i=0;
while (*(string+i))
{
if ((*(string+i) >= 'a') && (*(string+i) <= 'z')) *(string+i) = *(string+i) — 'a' + 'A';
i++;
}
return(starting_address);
}
main(){
cout << string_uppercase("hello, world") << endl;
}
|
|
|
Konstantine |
Отправлено: 01.05.2006, 12:38 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
сделай так:
CODE | #include <iostream.h>
char *string_uppercase(char* string)
{
int i=0;
while (string[i])
{
if ((string[i] >= 'a') && (string[i] <= 'z'))
string[i] = string[i] — 'a' + 'A';
i++;
}
return string;
}
main(){
cout << string_uppercase("hello, world") << endl;
} | это должно работать
Отредактировано Konstantine — 01/05/2006, 15:12
|
|
** Mike |
Отправлено: 01.05.2006, 14:48 |
|
Не зарегистрирован
|
У тебя работает? |
|
Konstantine |
Отправлено: 01.05.2006, 15:14 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
Уже работает (одна скобка лишняя)
кстати — проверил Ваш вариант — он тоже рабочий
поэтому давайте подробнее — как именно это "не работает" проявляется
|
|
Guest |
Отправлено: 01.05.2006, 17:47 |
|
Не зарегистрирован
|
Обычная ошибка типа "Приложение совершило недопустимую операцию".Но это не на билдере,на 2-х других компилляторах-Dev-cpp и MS Visual Studio. На билдере все заработало.Странно. |
|
Konstantine |
Отправлено: 01.05.2006, 21:59 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
к сожелению другого компилятора у меня нет.
но могу лишь посоветовать не использовать iostream.h
попробуйте воспользоваться другой библиотекой, например stdio.h и тогда анологичная функция в main:CODE | printf("%s\n",string_uppercase("hello, world")); |
|
|
Asher |
Отправлено: 02.05.2006, 08:20 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет.
Беспрецендетно наглое использование строкового литерала не по назначению.
Всем читать Страуструпа.
5.2.2. Строковые литералы.
|
|