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

Дописать программу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу для нахождения НОД двух произвольных целых чисел http://www.cyberforum.ru/cpp-beginners/thread801409.html
1. Написать программу для нахождения НОД двух произвольных целых чисел. 2. Написать программу для проверки произвольного целого числа на простоту.
C++ Работа со структурами У меня есть структура, содержащая фамилии учеников и их оценки по 3 предметам. Как мне посчитать средний балл каждого студента и вывести тех, у кого средний балл выше среднего? Заранее спасибо) ... http://www.cyberforum.ru/cpp-beginners/thread801406.html
C++ Массивы (найти номер максимального элемента массива, произведение элементов массива)
В одномерном массиве, состоящем из п целых элементов, 1) номер максимального элемента массива;I 2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами....
C++ Описать класс "карта"
Помогите нужно к паре сделать прогу, а я с класами вообще не как задание "описать класс карта(масть и достоинство)содержащий функцию вывода на экран"
C++ Создание текстовой переменной http://www.cyberforum.ru/cpp-beginners/thread801385.html
Заметил, что данный способ создаёт переменную без объявления её длины. char text = "C++"; cout << text; // Ошибка char *text = "C++"; cout << text; // C++ Просто хочу уточнить, возможно...
C++ Счетчик сравнений для быстрой сортировки Добрый вечер. Взял сортировку из википедии void qSort(int arr7, int first, int last) { k = first; l = last; x = arr7; do { while(arr7 > x){ k++; } ... подробнее

Показать сообщение отдельно
softmob
1248 / 698 / 155
Регистрация: 20.02.2010
Сообщений: 1,035
05.03.2013, 21:57
может пригодится.. вариант без дополнительной памяти. переворот всей строки, затем переворот каждой лексемы.
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
30
31
32
33
34
35
36
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
void swap(char *str, int i, int j)
{
    int ch; 
    while (i < j)
    {
        ch = str[i];
        str[i] = str[j];
        str[j] = ch;
        ++i; --j;
    }
}
 
int main(void)
{
    char str[512];
    int i, k;
    fgets(str, sizeof(str)/sizeof(*str), stdin);  
    swap(str, 0, strlen(str)-1);
    for (i = 1, k = 0; i < strlen(str); ++i)
    {
        if (!isalnum(str[i]))
        {
            swap(str, k, i-1);
            k = i;
        }
        else if (!isalnum(str[k]))
            k = i;
    }
    swap(str, k, i-1);
    printf("%s", str);
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru