Автор |
Сообщение |
Beatrice
Репутация: 0
Возраст: 19
Гороскоп:
Пол:
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
|
[] 03.03.2007 22:22 Помогите с Турбо СИ, 1ый курс!! |
|
|
Я на первом курсе, на прикладной информатике в экономике, помогите бедной студентке написать программку, она не оч сложная(стыдно наверно д.б.! ), я перепробовала многое, пробовали мои одногруппники...у них не получилось, а одна из преподов (не буду говорить кто)))) сказала, что сама не знает, вообщем а решить то надо...лабораторка!! что делать? помогите пожалуйста! Язык программирвоания Турбо СИ.
Вообщем задание звучит так:
ВВЕСТИ СТРОКУ СИМВОЛОВ.ЕСЛИ В СТРОКЕ ЕСТЬ СИМВОЛ "+", ТО СИМВОЛЫ СЛЕДУЮЩИЕ ЗА НИМ ЗАМЕНИТЬ НА "*".
Но это несложно должно быть.....помогите.... пожалуйста.....
_________________ _____Люди часто одиноки, потому что они строят стены вместо мостов_____
|
|
Вернуться к началу |
|
|
Kabal
Инноватор-самоучка
Репутация: +19/–1
Возраст: 26
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 3247
Стаж: 2 года 9 месяцев
|
[] 03.03.2007 22:35 |
|
|
Елементарно .
Можно решить оооочень простым способом через поиск в строке символа командой, но я уж через циклы . Основной цикл будет таким (за синтаксис не отвечаю):
m=false;
for (i=0; i<length(str)-1;i++)
if m {str[i]='*';}
else if str[i]='+'
m=true;
Все, что осталось - обьявить переменные, ввести строку, вывести в конце и все .
_________________
|
|
Вернуться к началу |
|
|
Beatrice
Репутация: 0
Возраст: 19
Гороскоп:
Пол:
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
|
[] 03.03.2007 22:42 |
|
|
спасибо огромное я попробую обязательно! ТОЛЬКО ВОТ...m=false; m=true; - мне не очень понятно, мы не изучали подобного, расшифруй пожалуйста, что сие означает в ДАННОМ случае
Добавлено спустя 10 минут 23 секунды:
не пойдет это дело, мы ещё детки маленькие мы подключаем только stdio.h conio.h string.h а на length Си пишет что эта функция не объявлена. Вот....а можно ли ка-нибудь тоже самое но так чтобы .....для мелких, для начинающих, т.е. с помощью напрмер только циклов, усл операторов и каких-нибудь функции из стандартной библиотеки для работы со строками
_________________ _____Люди часто одиноки, потому что они строят стены вместо мостов_____
|
|
Вернуться к началу |
|
|
Snoop
Репутация: +2
Возраст: 20
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 1123
Стаж: 3 года 10 месяцев
|
[] 03.03.2007 22:57 |
|
|
написал бы уж полностью такую халяву))
Добавлено спустя 1 минуту 19 секунд:
Beatrice
функция для мерки длины в С strlen, МСДН рулит)
_________________ Может показаться, что я ничего не делаю, но на клеточном уровне я очень занят!
|
|
Вернуться к началу |
|
|
Beatrice
Репутация: 0
Возраст: 19
Гороскоп:
Пол:
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
|
[] 03.03.2007 23:12 |
|
|
Snoop
воот! strlen это мне знакомо
_________________ _____Люди часто одиноки, потому что они строят стены вместо мостов_____
|
|
Вернуться к началу |
|
|
Snoop
Репутация: +2
Возраст: 20
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 1123
Стаж: 3 года 10 месяцев
|
[] 03.03.2007 23:30 |
|
|
Beatrice
дак напишешь сама свою прогу, она очень халявная)
_________________ Может показаться, что я ничего не делаю, но на клеточном уровне я очень занят!
|
|
Вернуться к началу |
|
|
Kabal
Инноватор-самоучка
Репутация: +19/–1
Возраст: 26
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 3247
Стаж: 2 года 9 месяцев
|
[] 03.03.2007 23:56 |
|
|
Beatrice
Ошибки надо подправить . Сорри . Ну и без true/false.
m=0;
for (i=0; i<strlen(str)-1;i++)
if (m=1) {str[i]='*';}
else if (str[i]='+')
m=1;
_________________
|
|
Вернуться к началу |
|
|
Sovie
Репутация: +20/–1
Пол:
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
|
[] 04.03.2007 0:20 |
|
|
Код:
#include <stdio.h> // Для корректной работы gets, puts
#include <string.h> // Для корректной работы strlen
void main()
{
unsigned int i = 0; // Счётчик
unsigned int flag = 0; // Флаг, показывает, был ли найден плюсик
char sInput[1024] = ""; // Тут будет храниться строка, длина максимум 1024
puts("Input string -> "); // Выводим приглашение к вводу
gets(sInput); // Вводим строку
for (i = 0; i < strlen(sInput); i++) // Просматриваем каждый символ строки
{
if (sInput[i] == '+') // Если симол это плюсик, флаг поднять
flag = 1;
if (flag == 1) // Если флаг поднят, текущий символ заменить на звёздочку
sInput[i] = '*';
}
puts(sInput); // Вывести результат работы
}
Добавлено спустя 11 минут 33 секунды:
А вот вариант с посимвольной обработкой строки. Иногда преподы просят.
Код:
#include <stdio.h> // Для корректной работы getchar, puts
void main()
{
unsigned int i = 0; // Счётчик
char sInput[1024] = ""; // Тут будет храниться строка, длина максимум 1024
char cNew;
while ((cNew = getchar()) != '\n') // Вводим строку, пока не нажата Enter
{
sInput[i] = cNew; // Символ номер i = новый введённый символ
if (cNew == '+') // Если новый символ оказался плюсиком,
{
sInput[i] = '*';
while ((cNew = getchar()) != '\n') // То будем прододжать ввод
{
sInput[i] = '*'; // Но всё прочее будет звёздочкой
i++;
}
break; // Завершить "большой" цикл
}
i++; // Нарастить счётчик
}
puts(sInput); // Вывести результат
}
Добавлено спустя 3 минуты 6 секунд:
На самом деле можно придуть кучу вариантов, если что не так, отпишись в личку или в аську.
Последний раз редактировалось: Sovie (04.03.2007 11:32), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
Kabal
Инноватор-самоучка
Репутация: +19/–1
Возраст: 26
Гороскоп:
Пол:
Откуда: Санкт-Петербург
Сообщения: 3247
Стаж: 2 года 9 месяцев
|
|
Вернуться к началу |
|
|
Sovie
Репутация: +20/–1
Пол:
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
|
[] 04.03.2007 0:41 |
|
|
Kabal писал(а): Цитата: Sovie писал(а):char sInput[1024] = ""; // Тут будет храниться строка, длина максимум 1024
А может 1023? .
Это смотря от чего считать. Но в целом верно. Если тут ввести ровно 1024 символа от единицы, будет косяк.
|
|
Вернуться к началу |
|
|
Beatrice
Репутация: 0
Возраст: 19
Гороскоп:
Пол:
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
|
[] 04.03.2007 0:56 |
|
|
РЕБЯТА Я ВАС ЛЮБЛЮ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_________________ _____Люди часто одиноки, потому что они строят стены вместо мостов_____
|
|
Вернуться к началу |
|
|
Sovie
Репутация: +20/–1
Пол:
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
|
[] 04.03.2007 0:59 |
|
|
Признаю, Kabal прав. Максимальная длина строки char sInput[1024] может быть n-1 символов. т.е. 1023. Не попадись на этом.
|
|
Вернуться к началу |
|
|
Beatrice
Репутация: 0
Возраст: 19
Гороскоп:
Пол:
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
|
[] 04.03.2007 1:06 |
|
|
оки..учту....
_________________ _____Люди часто одиноки, потому что они строят стены вместо мостов_____
|
|
Вернуться к началу |
|
|
Sovie
Репутация: +20/–1
Пол:
Откуда: Санкт-Петербург
Сообщения: 787
Стаж: 2 года 7 месяцев
|
[] 04.03.2007 1:17 |
|
|
А меня Kabal отругал, за то, что я всё расписал и не дал тебе самостоятельно подумать
Меня спасёт только поцелуй прекрасной принцессы
|
|
Вернуться к началу |
|
|
Beatrice
Репутация: 0
Возраст: 19
Гороскоп:
Пол:
Откуда: Орехово-Зуево
Сообщения: 59
Стаж: 1 год 10 месяцев
|
[] 04.03.2007 1:29 |
|
|
Да блин вы не думаете что я тупая!)) но правда просто так получилось программирование токо началось! меян это просто никогда не увлекало!
Поцелуй прекрасному принцу только с удовольствием
_________________ _____Люди часто одиноки, потому что они строят стены вместо мостов_____
|
|
Вернуться к началу |
|
|
|
|