функция cout не работает, когда я пытаюсь вывести строку - PullRequest
0 голосов
/ 17 февраля 2019

Я создал 2 строки и пытался получить вывод.Первый cout работает хорошо, но есть что-то не так с cout во второй последней строке, который ничего не показал, когда я тестировал его.Я выкладываю весь свой код, если кто-то может сказать мне, в чем проблема в этом состоянии.

Вывод должен выглядеть так: «Введите зашифрованную строку:»;// Первый cout, если я введу «nhypto», он должен показать мне это: «Первоначальная строка была: python», но она ничего мне не показала.

#include <iostream>
#include <string>
using namespace std;


int main(){
    string str, str_new;
    cout << "Enter the scrambled string: ";
    cin >> str_new;
    int len = str_new.length();
    if (len%2 == 0){
        for (int i = 0; i < len; i++){
            if (i%2 == 1){
                return str[i] = str_new[len/2 - 1 - (i-1)/2];
            }
            else {
                return str[i] = str_new[len/2 - 1 + i/2];
            }
        }
    }
   else {                          // len%2 == 1
        for (int i = 0; i < len; i++){
            if (i%2 == 1){
                return str[i] = str_new[(len-1)/2 - (i+1)/2];
            }
            else {
                return str[i] = str_new[(len-1)/2 + i/2];
            }
        }
    }

    cout << "The original string was: " << str;
    return 0;

}

1 Ответ

0 голосов
/ 17 февраля 2019

Как было сказано в комментариях, вам нужно только удалить ненужные return токены.

#include <iostream>
#include <string>
using namespace std;


int main(){
    string str, str_new;
    cout << "Enter the scrambled string: ";
    cin >> str_new;
    int len = str_new.length();
    str.resize(len);
    if (len%2 == 0){
        for (int i = 0; i < len; i++){
            if (i%2 == 1){
                str[i] = str_new[len/2 - 1 - (i-1)/2];
            }
            else {
                str[i] = str_new[len/2 - 1 + i/2];
            }
        }
    }
   else {                          // len%2 == 1
        for (int i = 0; i < len; i++){
            if (i%2 == 1){
                str[i] = str_new[(len-1)/2 - (i+1)/2];
            }
            else {
                str[i] = str_new[(len-1)/2 + i/2];
            }
        }
    }

    cout << "The original string was: " << str;
    return 0;

}
...