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

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

Восстановить пароль Регистрация
 
WildSpirit
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 8
10.12.2012, 22:30     Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки... #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++
Упорядочить вектор так, что бы сначала шли числа кратные 3, потом с остатком 2 при делении на 3, потом с остатком 1. C++
C++ Переписать файл так, чтобы сначала шли положительные, потом отрицательные числа
C++ Переписать файл целых чисел так, чтобы сначала шли положительные, а потом - отрицательные
Преобразование строки: сначала - все буквы, потом - все цифры C++

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

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

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