Другие языки программирования и технологии

Помогите пожалуйста решить задачу по программированию или напишите, как удалить подряд стоящие точки. (Си, Си++ Билдер)

В последовательности символов удалить подряд стоящие точки, оставив одну и следующее слово вывести с большой буквы. Конец последовательности ‘!’
По символам перебираете. Как наткнетесь на точку, перебираете, пока точки не кончатся. Конец - ну там тоже написано.
Задача содержит в себе решение как-бе.

Серж: Капитан открытые глаза подсказывает, на каком языке конкретно нужно решение.
1. memchr? МОжет сразу TRegExp?
2. Это же так быстро! Сдвигать посимвольно-то!
3. Тоаппер не работает на русский буквах, хотя не понятно, надо ли это делать в задании.
Робертас Бразаускас
Робертас Бразаускас
6 852
Лучший ответ
while( *s != '!' )
{
for( ; *s != '!' & *s != '.'; s++, r++ ) *r = *s;
if (*s == '.') *r++ = '.';
for( ; *s != '!' & *s == '.'; s++, r++ ) *r = *s;
if (*s != '!') if ('a' <= *s) & (*s <= 'z') *r++ = *s + 'A'-'a'; else *r++ = *s++;
}
Из условия не понятно какой язык.
Если С:
1) Используйте функцию memchr для поиска.
2) Удаляйте, посимвольно сдвигая строку.
3) К верхнему регистру приводите с помощью toupper.
Если C++:
1) Используете string.
2) В нем есть метод find для поиска.
3) В нём есть метод erase для удаления.
4) toupper работает так же.

Если сами написать не можете - обращайтесь в личку или на почту.

Redis, если вы за быдлокод, то можете и дальше искать символы "вручную". memchr - это стандартная функция языка C.
Вы можете предложить более оптимальный способ удаления символы из сишной строки? Я вот в string.h их не нашел.
Где-то про русские буквы сказано? Нет. Значит, нет основания предполагать что они есть.

И да, если вам понятно, какой язык нужен КОНКРЕТНО: "(Си, Си++ Билдер)", то я за вас рад. Мне не понятно, так как там указано два языка: C и C++.
Владимир Деев
Владимир Деев
5 321