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

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

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

Сформировать из значений массива другой массив, расположив в нем сначала цифры, затем – буквы, затем - символы, не являющихся ни буквами, ни цифрами - C++

06.04.2011, 10:24. Просмотров 1004. Ответов 13
Метки нет (Все метки)

Создать массив из 20 символьных значений. Сформировать из его значений другой массив, расположив в нем сначала цифры, затем – буквы, затем - символы, не являющихся ни буквами, ни цифрами.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2011, 10:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать из значений массива другой массив, расположив в нем сначала цифры, затем – буквы, затем - символы, не являющихся ни буквами, ни цифрами (C++):

Вывести на экран сначала цифры, затем буквы, затем остальные символы исходной строки - C++
Вывести на экран сначала цифры, затем буквы, затем остальные символы исходной строки. : a - указатель исходной стpоки

Изменить входную строку, чтобы в нем сначала были записаны буквы, потом знаки препинания, а затем цифры - C++
Изменить входную строку таким образом, чтобы в нем сначала были записаны буквы, потом знаки препинания, а затем цифры.

Сформировать другой массив, в который поместить сначала числа меньшие среднего арифметического значения этого массива, затем – большие. - C++
Дан целочисленный массив, состоящий из 15 элементов. Сформировать другой массив, в который поместить сначала числа меньшие среднего...

Преобразовать массив следующим образом: сначала должны стоять цифры, входящие в массив, а затем все остальные символы - C++
помогите пожайлуста с задачей. Задан массив из k символов. Преобразовать массив следующим образом: сначала должны стоять цифры,...

Получить новый массив, в котором сначала идут положительные числа, затем нулевые, затем отрицательные исходного - C++
дан массив X(N). получить новый массив Y(N), такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из Х....

Переписать в массив B сначала отрицательные, а затем положительные элементы исходного массива - C++
Помогите пожалуйста решить эти задачки... 1. Одномерные массивы Переписать в массив B(N) сначала отрицательные, а затем...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 10:27 #2
К сожалению тут привязка к ASCII таблице, особо помочь не смогу
Могу только задать направление мысли
1
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
06.04.2011, 10:33  [ТС] #3
не, я с этой темой плохо, поэтому даже натолкнуть и то не поможет, но все равно спасибо.
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 10:37 #4
Для начала выполни вот такое
C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
 
int main() {
    for (int i=0;i<256;i++)
        cout << "Символ " << (char) i << " имеет номер " << i + 1 << endl;
}
И напиши мне диапазоны номеров символов, числовые номера, буквенные и остальных символов
1
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
06.04.2011, 10:42  [ТС] #5
всё что есть и заданно, написанно в задании.....
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 10:44 #6
ТОсле того как скомпилишь у тебя будет распечатка на каком месте какой символ стоит, у меня просто немного по другому, напиши с какого номера начинаются цифры и с какого буквы.
0
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
06.04.2011, 10:49  [ТС] #7
чисто теоретически мне без разницы. все на ваше усмотрение
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 10:53 #8
Но тебе нужно подставить свои диапазоны...
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
#include <iostream>
using namespace std;
 
int main() {
    const int size=20;
    char ar[size];
    char arnew[size];
    int index=0;
    cout<<"Введите ваши символы\n";
    for(int i=0;i<size;i++)
        cin>>ar[i];
    cout<<"Введенные вами символы :\n";
    for(int i=0;i<size;i++)
        cout<<ar[i]<<" ";
    cout<<endl;
    for(int i=0;i<size;i++)
        if(((int)ar[i]>10)&&((int)ar[i]<20)){
            arnew[index]=ar[i];
            index++;
        }
    for(int i=0;i<size;i++)
        if(((int)ar[i]>21)&&((int)ar[i]<40)){
            arnew[index]=ar[i];
            index++;
        }
    for(int i=0;i<size;i++)
        if(((int)ar[i]>41)&&((int)ar[i]<81)||(((int)ar[i]<10)&&((int)ar[i]>0))){
            arnew[index]=ar[i];
            index++;
        }
    cout<<"ОТсортированные символы :\n";
    for(int i=0;i<size;i++)
        cout<<ar[i]<<" ";
    cout<<endl;
 
 
}
1
hoholnn
0 / 0 / 0
Регистрация: 09.03.2011
Сообщений: 30
06.04.2011, 10:55  [ТС] #9
спсибо большое, ща посмотрю ))
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
06.04.2011, 11:12 #10
всё в одном массиве
C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
#include<algorithm>
#include<cctype>
 
int main(){
    char text[]="yH6&g%\\G%3f*v44@ 4VB";
    std::sort(text, text+sizeof(text), [](char a, char b){
              return (isdigit(a)&&(!isdigit(b))||isalpha(a)&&(!isalnum(b)));
              });
    std::cout<<text<<"\n";
}
0
Pips
0 / 0 / 0
Регистрация: 06.04.2011
Сообщений: 6
06.04.2011, 11:14 #11
а можтщ сделать так чт бы он рандомно выдавал символы
0
Fafle
34 / 34 / 4
Регистрация: 19.03.2010
Сообщений: 136
06.04.2011, 11:23 #12
С рандомом мой вариант
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
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
 
int main() {
    srand(time(NULL));
    const int size=20;
    char ar[size];
    char arnew[size];
    int index=0;
    for(int i=0;i<size;i++)
       ar[i]=(char)rand();
    cout<<"Ваш массив :\n";
    for(int i=0;i<size;i++)
        cout<<ar[i]<<" ";
    cout<<endl;
    for(int i=0;i<size;i++)
        if(((int)ar[i]>10)&&((int)ar[i]<20)){
            arnew[index]=ar[i];
            index++;
        }
    for(int i=0;i<size;i++)
        if(((int)ar[i]>21)&&((int)ar[i]<40)){
            arnew[index]=ar[i];
            index++;
        }
    for(int i=0;i<size;i++)
        if(((int)ar[i]>41)&&((int)ar[i]<81)||(((int)ar[i]<10)&&((int)ar[i]>0))){
            arnew[index]=ar[i];
            index++;
        }
    cout<<"ОТсортированные символы :\n";
    for(int i=0;i<size;i++)
        cout<<ar[i]<<" ";
    cout<<endl;
 
 
}
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
06.04.2011, 11:47 #13
нашёл у себя ошибку. Похоже что sizeof(text) на единицу длиннее чем strlen(text), поэтому вот эту строку: text+sizeof(text) придётся укоротить: text+sizeof(text)-1.
0
IrineK
Заблокирован
06.04.2011, 11:59 #14
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 <sstream>
using namespace std;
 
bool isDigit(char ch)
{   if(ch>='0' && ch<='9')
        return true;
    return false;
}
 
bool isLetter(char ch)
{   if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))
        return true;
    return false;
}
 
int main()
{   int i,j;
    char str[80], result[80];
    cout<<"Your string:\n";
    cin.getline(str,80);
 
    for(i=0,j=0;i<strlen(str);i++)
        if(isDigit(str[i]))
        {   result[j]=str[i];
            j++;
        }
    for(i=0;i<strlen(str);i++)
        if(!isDigit(str[i]) && isLetter(str[i]))
        {   result[j]=str[i];
            j++;
        }
    for(i=0;i<strlen(str);i++)
        if(!isDigit(str[i]) && !isLetter(str[i]))
        {   result[j]=str[i];
            j++;
        }
    result[j]='\0';
    cout<<"Result:\n"<<result<<"\n";
    
    cin.sync(); cin.get();
    return 0;
}
0
Миниатюры
Сформировать из значений массива другой массив, расположив в нем сначала цифры, затем – буквы, затем - символы, не являющихся ни буквами, ни цифрами  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2011, 11:59
Привет! Вот еще темы с ответами:

Получить массив, расположив в его начале элементы массива A, а затем — элементы массива B - C++
Помогите решить такую вот задачку (Даны массивы A и B. Получить массив C, расположив в его начале элементы массива A, а затем — элементы...

Задан Массив из N и M Чисел соответственно. Получить объединенный массив, включив в него сначала элементы первого массива, а затем второго - C++
Помогите пожалуйста набрать код в с++. Задан Массив из N и M Чисел соответственно. Получить объединенный массив, включив в него сначала...

Задан Массив из N и M Чисел соответственно. Получить объединенный массив, включив в него сначала элементы первого массива, а затем второго - C++
Помогите пожалуйста набрать код в с++. Задан Массив из N и M Чисел соответственно. Получить объединенный массив, включив в него сначала...

Массив В [1...40] заполнить следущим образом: сначала три элемента из массива А, а затем записать их среднее арефметическое - C++
Написать программу по задаче: Создать числовой массив А . Массив В заполнить следущим образом: сначала три элемента из массива А, а...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.04.2011, 11:59
Ответ Создать тему
Опции темы

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