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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нужны разъяснения по функции http://www.cyberforum.ru/cpp-beginners/thread726873.html
Имеется функция: #include "stdafx.h" #include <cstdlib> #include <iostream> #include <vector> using namespace std; int* find(const vector<int> &vec, int value)
C++ Преобразование в char Добрый вечер. Как сделать, чтобы работало: fstream outStream; double z, dz; ... outStream.open("points/" + (char)(z/dz) + ".txt", ios::out);? Добавлено через 23 часа 54 минуты Никто не знает? http://www.cyberforum.ru/cpp-beginners/thread726863.html
C++ сортировка одномерного массива по возрастанию и убыванию
одномерный массив из N элементов преобразовать так,чтобы в первой половине элементы были упорядочены по возрастанию, а во второй - по убиванию. #include <vcl.h> #include <iostream.h> #include <conio.h> int main() {int n,i,m,x,j,k,r,p; int mas; cout<<"vvedit parny kilkist elementov masivu: ";
Программирование с использованием подпрограмм общего вида C++
Вот эта задача: Заданы матрицы A= (i=1, 2, 3; j=1, 2, 3), B= (i=1, 2, 3; j=1, 2, 3), то есть матрицы А и В - 3x3. Расставить в порядке возрастания элементы в главных диагоналях каждой матрицы. Затем A и B сложить. Расстановку в порядке возрастания элементов оформить в виде подпрограммы. Вот, что у меня вышло: #include <iostream.h> #include <math.h> #include <iomanip.h> #include <cstdlib>...
C++ Все элементы, которые при целочисленном делении на N дают ненулевое значение, увеличить на M http://www.cyberforum.ru/cpp-beginners/thread726818.html
И ещё одну) Кому не сложно) Ввести двумерный массив {A}_{NxM}. Все элементы, которые при целочисленном делении на N дают ненулевое значение, увеличить на M. Массив вывести до и после преобразования. Добавлено через 3 часа 4 минуты помогите люди)
C++ Помогите реализовать список строк и написать функции для подсчета количества слов в списке Задача: Реализуйте список строк. Напишите функции для подсчета количества слов в списке: а. начинающихся и оканчивающихся одной и той же буквой б. начинающихся с той же буквы, что и следующее слово в. совпадающих с последним словом. Проблема: список вроде бы написал, просьба проверить и указать ошибки. Есть ощущение, что он написан коряво. Если не сложно посмотрите... подробнее

Показать сообщение отдельно
WildSpirit
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 8

Преобразуйте эту строчку так, чтобы сначала в ней шли цифры, а потом - все буквы исходной строчки... - 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?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru