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

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

Войти
Регистрация
Восстановить пароль
 
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
#1

При выполнении определенного условия поменять порядок следования символов строки на противоположный - C++

23.10.2013, 07:49. Просмотров 1122. Ответов 10
Метки нет (Все метки)

Заданы 2 строки, состоящие из слов, разделенных пробелами. Если второе слово первой строки такое же, как второе слово второй строки, то поменять порядок следования символов первой строки на противоположный, в противном случае заменить все символы второй строки на “!”

Добавлено через 11 часов 38 минут
пожалуйста помогите!!!!!!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2013, 07:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При выполнении определенного условия поменять порядок следования символов строки на противоположный (C++):

Поменять порядок следования символов строки на обратный - C++
Всем привет помогите пожалуйста.Решить задачу: поменять порядок следования символов данной строки на обратный. Например, для строки «Мама...

Как поменять порядок следования элементов в массиве на противоположный? - C++
Есть код: #include <iostream> #include <ctime> using namespace std; int kontrmas(int mass,int size); int main() { const...

Изменить порядок следования элементов массива на противоположный - C++
Измените порядок следования элементов массива на противоположный.

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

Задана строка. Изменить порядок следования символов в 1 и 2 половине строки на обратный - C++
Всем доброго времени суток! Работать со строками крайне не умею, а сдать нужно. Надеюсь, что поможете. То есть, я понимаю это как...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Folko
265 / 253 / 7
Регистрация: 27.09.2013
Сообщений: 877
Записей в блоге: 1
23.10.2013, 08:37 #2
Marrry, ну и в чем проблема?

Добавлено через 43 минуты
Marrry, особо не заморачиваясь, решил вот так.
C++ (Qt)
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 <QTextStream>
 
int main(int argc, char *argv[])
{
    QTextStream cout(stdout);
    QString one = "This Googlet horosho";
    QString two = "Yandex Googlet Yahoo Bing";
    QString temp1, temp2 = "";
    int t = 0;
    while (one[t]!=' ') t++;
    t++;
    while (one[t]!=' ')
    {
        temp1 += one[t];
        t++;
    }
    t = 0;
    while (two[t]!=' ') t++;
    t++;
    while (two[t]!=' ')
    {
        temp2 += two[t];
        t++;
    }
    cout << temp1 << "::" << temp2 << endl;
    if (temp1 == temp2)
    {
        for (int i = 0; i < one.length()/2; i++)
        {
            QChar temp = one[i];
            one[i] = one[one.length()-i-1];
            one[one.length()-i-1] = temp;
        }
    }
    else
    {
        for (int i = 0; i < two.length(); i++)
            two[i] = '!';
    }
    cout << one << endl;
    cout << two << endl;
    return 0;
}
1
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
23.10.2013, 16:21  [ТС] #3
не запускается

Добавлено через 45 минут
HEEEELP!!!
0
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
23.10.2013, 19:49  [ТС] #4
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
#include <iostream>
#include <string>
 
int main(int argc, char *argv[])
  
{ using namespace std;
 
string s1, s2;
    cout << "Pervaya stroka:\t"; getline(cin, s1);
    cout << "Vtoraya stroka:\t"; getline(cin, s2);
   
    
    string  temp1, temp2 = "";
    int t = 0;
    while (s1[t]!=' ') t++;
    t++;
    while (s1[t]!=' ')
    {
        temp1 += s1[t];
        t++;
    }
    t = 0;
    while (s2[t]!=' ') t++;
    t++;
    while (s2[t]!=' ')
    {
        temp2 += s2[t];
        t++;
    }
    cout << temp1 << "::" << temp2 << endl;
    if (temp1 == temp2)
    {
        for (int i = 0; i < s1.length()/2; i++)
        {
           temp = s1[i];
            s1[i] = s1[s1.length()-i-1];
            s1[s1.length()-i-1] = temp;
        }
    }
    else
    {
        for (int i = 0; i < s2.length(); i++)
            s2[i] = '!';
    }
    cout << s1 << endl;
    cout << s2 << endl;
    return 0;
}
помогите разобраться с ошибкой в 35 строке
0
GoldenChild
28 / 28 / 4
Регистрация: 12.06.2013
Сообщений: 65
23.10.2013, 20:56 #5
все работает, объявите temp как сhar:
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    string s1, s2;
    cout << "Pervaya stroka:\t"; getline(cin, s1);
    cout << "Vtoraya stroka:\t"; getline(cin, s2);
 
    string temp1 = "", temp2 = "";
    int t = 0;
    while (s1[t] != ' ') t++;
    t++;
    while (s1[t] != ' ') {
        temp1 += s1[t];
        t++;
    }
    
    t = 0;
    while (s2[t] != ' ') t++;
    t++;
    while (s2[t] != ' ') {
        temp2 += s2[t];
        t++;
    }
    
    cout << temp1 << "::" << temp2 << endl;
    if (temp1 == temp2) {
        for (int i = 0; i < s1.length()/2; i++) {
            char temp = s1[i];
            s1[i] = s1[s1.length()-i-1];
            s1[s1.length()-i-1]= temp;
        }
    } else {
        for (int i = 0; i < s2.length(); i++)
        s2[i] = '!';
    }
 
    cout << s1 << endl;
    cout << s2 << endl;
system("pause");
return 0;
}
0
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
25.10.2013, 20:49  [ТС] #6
она не выполняет условие...Почему?
0
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
29.10.2013, 08:24  [ТС] #7
Заданы 2 строки, состоящие из слов, разделенных пробелами. Если второе слово первой строки такое же, как второе слово второй строки, то поменять порядок следования символов первой строки на противоположный, в противном случае заменить все символы второй строки на “!”
Помогите с решением)
0
rescr1pt
33 / 34 / 1
Регистрация: 03.10.2011
Сообщений: 61
29.10.2013, 10:05 #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
#include <string>
#include <sstream>
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    
    string str1("Good morining for everybody");
    string str2("Good are you my friend");
 
    string tokened1, tokened2;
    stringstream sstr(str1);
    getline(sstr, tokened1, ' ');
    sstr.clear();
 
    sstr.str(str2);
    getline(sstr, tokened2, ' ');   
 
    if (tokened1 == tokened2)
        std::reverse(str2.begin(), str2.end());
    else
        for (size_t i = 0; i < str1.size(); ++i)
            str1[i] = '!';
 
    std::cout << str1 << endl << str2 << endl;
    std::cin.get();;
}
0
Marrry
2 / 2 / 0
Регистрация: 15.02.2013
Сообщений: 108
29.10.2013, 11:45  [ТС] #9
должно сравнивать второе слово. И нужно чтобы предложения вводились с клавиатуры.
0
rescr1pt
33 / 34 / 1
Регистрация: 03.10.2011
Сообщений: 61
29.10.2013, 13:36 #10
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
#include <string>
#include <sstream>
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    string str1, str2;
    
    cout << "First string: "; 
    getline(cin, str1);
    cout << "Second string: ";
    getline(cin, str2);
 
    string tokened1, tokened2;
    stringstream sstr(str1);
    getline(sstr, tokened1, ' ');
    getline(sstr, tokened1, ' ');
    sstr.clear();
    sstr.str(str2);
    getline(sstr, tokened2, ' ');   
    getline(sstr, tokened2, ' ');
 
    if (tokened1 == tokened2)
        std::reverse(str2.begin(), str2.end());
    else
        for (size_t i = 0; i < str1.size(); ++i)
            str1[i] = '!';
 
    std::cout << str1 << endl << str2 << endl;
    std::cin.get();;
}
Можно так же вектор строк использовать.
1
danikXarlamov
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 26
24.03.2016, 16:54 #11
выходят какие та ироглифы что делать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2016, 16:54
Привет! Вот еще темы с ответами:

Если целые числа упорядочены по возрастанию (a<b<c<d) сменить порядок их следования на противоположный - C++
Если целые числа упорядочены по возрастанию (a&lt;b&lt;c&lt;d) сменить порядок их следования на противоположный

Поменять порядок следования массива - C++
Подскажите, пожалуйста, как поменять порядок следования данного массива на обратный:gsorry: #include &lt;iostream&gt; using namespace std; ...

Массив: При выполнении условия изменить матрицу A, прибавив к элементам каждой строки заданные элементы x1,x2,…,x5. - C++
Если сумма двух первых строк матрицы A меньше суммы элементов двух последних ее строк, изменить матрицу A, прибавив к элементам каждой...

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


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

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

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