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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
WildSpirit
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 8
#1

Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки... - C++

10.12.2012, 22:30. Просмотров 752. Ответов 1
Метки нет (Все метки)

Условие: дана строчка, которая содержит буквы и цифры. Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки. Возможные символы - цифры; прописные и строчные латинские буквы.

Сделал так:
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
37
38
39
40
41
42
43
#include <iostream>
#include <stdio.h>
 
int main()
{
    using namespace std;
    char *string;
    char *letters;
    char *numbers;
    int k,j,i, N=32;
    
    string = (char*) malloc(N);
    letters = (char*) malloc(N);
    numbers = (char*) malloc(N);
 
    fgets(string,N,stdin);
 
    for(i = 0, j = 0, k = 0; string[i] != '\0'; i++)
    {
        if((string[i] >= 'a' && string[i] <= 'z') ||
           (string[i] >= 'A' && string[i] <= 'Z'))
        {
            letters[j] = string[i];
            j++;
        }
        else if(string[i] >= '0' && string[i] <= '9')
        {
            numbers[k] = string[i];
            k++;
        }
    }
 
    letters[j]='\0';
    numbers[k]='\0';
 
    printf("%s",numbers);
    printf("%s",letters);
    
    delete[]numbers;
    delete[]letters;
    delete[]string;
    return 0;
}
Программа почему-то не работает, если N вводить с клавиатуры. Почему так? О_о Размер массива по условию должен вводиться пользователем. Еще нужно сделать, чтобы если длина введенной строки меньше, чем размер массива, то нужно изменить количество памяти, выделенной под массив. Как это сделать?
Как вывести недопустимый символ? В тот цикл можно дописать else, но как вывести первый недопустимый символ?
И как сделать конкатенацию без использования strcat?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 22:30     Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки...
Посмотрите здесь:

Превратить строку так, чтобы сначала в ней были напечатаны только буквы, а потом только цифры C++
сначала цифры а потом буквы C++
C++ Преобразовать строку так, чтобы все буквы в ней были отсортированы по возрастанию
Преобразовать последовательность чисел так, чтобы сначала были нули, а потом все остальные. C++
Обработать строку так, чтобы чтобы в ней остались только те слова которые содержат буквы и цифры C++
Написать программу в которой вначале шли цифры потом буквы C++
C++ Переставить числа в массиве таким образом, чтобы сначала шли элементы меньше a[b], затем равные a[b], и потом большие
Упорядочить вектор так, что бы сначала шли числа кратные 3, потом с остатком 2 при делении на 3, потом с остатком 1. C++
C++ Переписать файл так, чтобы сначала шли положительные, потом отрицательные числа
C++ Переписать файл целых чисел так, чтобы сначала шли положительные, а потом - отрицательные
Отсортировать массив целых так, чтобы сначала шли отрицательные, затем положительные числа C++
Преобразование строки: сначала - все буквы, потом - все цифры C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WildSpirit
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 8
11.12.2012, 22:53  [ТС]     Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки... #2
Проблема актуальна.
Yandex
Объявления
11.12.2012, 22:53     Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки...
Ответ Создать тему
Опции темы

Текущее время: 21:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru