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

Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Чтение файла в структуру http://www.cyberforum.ru/cpp-beginners/thread1224883.html
Всем привет! Есть бинарный файл test.txt, в нём заголовок, который я пытаюсь прочитать в структуру, но что-то не идёт... Содержание файла (от балды): 61 11 20 11 20 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 код программы: #include <iostream> using namespace std; struct MyStruct {
C++ Сортировка трехмерного массива Выполнить сортировку трехмерного массива методом вставки, пызырька! http://www.cyberforum.ru/cpp-beginners/thread1224874.html
В двумерном массиве заменить все четные элементы на минимальный элемент матрицы C++
Задание: В двумерном массиве заменить все четные элементы на минимальный элемент матрицы. Зарание спасибо)
C++ Отредактировать текст по ширине
#include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> #include <windows.h> #define KEY_CTRL_Z 0x1A #define KEY_ENTER 0xD #define KEY_POINT '.'
C++ Вычислить суму 4 чисел (верхних и нижних) в масиве http://www.cyberforum.ru/cpp-beginners/thread1224851.html
помогите пожалуйста написать программу которая показывает суму читерех чисел в масиве масив заполненый рандомными числа!масив 4 на 4 12 ** ** 75 24 82 1 38 32 11 85 23 81 ** ** 28 где звездочки те числа нужно сумировать и ввывисти! ребята помогите капац нужно через 2 часа на учобу а домашка не готова!
C++ Динамическая память new, delete Всем привет! Столкнулся с понятием "выделение динамической памяти", прочел несколько статей на эту тему и возникли вопросы: 1. В чем преимущество такого выделения памяти(приведите пример пожалуйста) 2. Как создать динамический массив? Вот так: char *p; p = new char;? Таким образом я получаю динамический массив размером в 5 элементов? Я вообще понял что динамический массив сам расширяет... подробнее

Показать сообщение отдельно
jakis
 Аватар для jakis
1 / 1 / 0
Регистрация: 22.01.2012
Сообщений: 18
10.07.2014, 13:13  [ТС]     Упорядочить символы строки B в алфавитном порядке и удалить латинские буквы из строки A
Теперь другая проблема по новопеределанной программе по тому же заданию.
См.задание в первом посте темы
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<cstring>
main()
{
    int i,j,k,e,lb;
    char A[80],B[80],min;
    printf("Введите строку А:");
    gets(A);
    printf("Введите строку В:");
    gets(B);
    char VerifA1[]="AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrQqSsTtUuVvWwXxYyZz";
    char VerifA2[]="АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя";
    /*Проверка строки А на наличие латинских символов*/
    e=0;
    for(i=strlen(A)-1;i>=0;i--)
    {
        if(strchr(VerifA1,A[i])!=NULL)
        {
            e=1;
        }
    }
    /*Проверка строки В на повторяющиеся символы*/
    i=0;
    int e1=0;
    while(i<=strlen(B)-1)
    {
        for(j=strlen(B)-1;j>i;j--)
        {
            if(B[i]==B[j])
            {
                e=1;
            }
        }
    }
    /*Решение в первом случае*/
    if(e==1 && e1==1)
    {
        for(i=strlen(A)-1;i>=0;i--)
        {
            if(strchr(VerifA1,A[i])!=NULL)
            {
                for(j=i;j<strlen(A);j++)
                {
                    A[j]=A[j+1];
                }
            }
        }
        i=0;
        while(i<=strlen(B)-1)
        {
            for(j=strlen(B)-1;j>i;j--)
            {
                if(B[i]==B[j])
                {
                    for(k=j;k<strlen(B);k++)
                    {
                        B[k]=B[k+1];
                    }
                }
            }
            i++;
        }
    }
    else
    /*Решение во втором случае*/
    {
        if(strchr(VerifA2,A[i])!=NULL)
        {
            for(j=strlen(A);j>=i;j--)
            {
                A[j+1]=A[j];
            }
        }
        for(i=0;i<=strlen(B)-2;i++)
        {
            min=B[i];
            k=i;
            for(j=i+1;j<=strlen(B)-1;j++)
            {
                if(B[j]<min)
                {
                    min=B[j];
                    k=j;
                }
            }
            B[k]=B[i];
            B[i]=min;
        }
    }
    printf("Преобразованная строка А:");
    puts(A);
    printf("Преобразованная строка В:");
    puts(B);
}
Проблема в том, что программа после введения значений тупо виснет

Добавлено через 8 минут
1. Нашел одну, в 33 строке
не так:
Цитата Сообщение от jakis Посмотреть сообщение
e=1;
,
а так:
Цитата Сообщение от jakis Посмотреть сообщение
e1=1;
.

Но программа все равно циклится на втором пункте, там, где "Проверка строки В на повторяющиеся символы"

Добавлено через 6 минут
Я понял, в 35 после "}" нужно было вписать "i++;"
 
Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru