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

Задача на строки в Си++

Дана строка. Записать в обратном порядке буквы последнего слова.
a) Определить, что является разделителем слов (скорее всего, любые символы, не попадающие в англ. и русс. алфавит.
б) найти данный разделитель, начиная от конца заданной строки.
ц) переписать с конца строки в стороннюю переменную до разделителя, циклом, изменив последовательность.

где именно загвоздка?

И сразу уточните, достаточно ли просто Си или нужно использовать классы именно Си++

Про цикл:
Ну, позицию мы получаем интерджером (целым числом) .

Там нет ни классов, ни списков - с++ там не нужен.
примерный код
String a;
scanf(a);
//получение строки
int n;
n = len(a), nStart = -1;
for(int i = n; i >=0; i--)
{
if(код i[a] не попадает в рэндж лат. или русс. алфавита) //нету компилятора под рукой
{
nStart = i;
i = -1;
}
else
nStart = i;
}
//Тут, в nStart мы получили наш разрыв.
Далее, повторяем цикл, но с условием
sNewString += i[a];

i гоним до nStart;

Готов помочь с кодом, если что-то не получится. Просто кинуть готовую софтинку, сорьки, считаю не верным.

Длинну строки мы получаем интеджером.
Я бы for брал. Можно вайлом, но смысла не вижу.
Alex Adamoff
Alex Adamoff
24 031
Лучший ответ
В чем вопрос?
Можно так:

Предположим что для разделителя слов стандартно используется символ пробела.

#include <stdio.h>

void reverse_word(char *string)
{
char *lastword,delim=0x20; // 0x20 - Символ пробела
for(lastword=string+strlen(string);(lastword!=string)&&((lastword-1)[0]!=delim);lastword--);
_strrev(lastword);
}

int main(void)
{
char string[0x100];
strcpy(string,"test string reverse");
printf("Original string: %s\r\n",string);
reverse_word(string);
printf("Last word reversed: %s\r\n",string);
return 0;
}