Challenge: Учитывая 2 строки ввода, вывода три линии:Переключение буквы на вызов C++
- Количество символов в каждой строке, разделенных пробелом;
- Строки, объединенные вместе;
- Строки, разделенные пробелом, и первая буква обоих слов заменены.
Код я продюсировал:
#include <iostream>
#include <string>
using namespace std;
int main() {
// Complete the program
string firstString, secondString;
cin>>firstString>>secondString;
cout<<firstString.length()<<" "<<secondString.length()<<"\n";
cout<<firstString<<secondString<<"\n";
string wierdString;
wierdString = secondString[0];
for (int i = 1; i <= firstString.length(); i++) {
wierdString += firstString[i];
}
wierdString = wierdString + " " + firstString[0];
for (int j = 1; j <= secondString.length(); j++) {
wierdString += secondString[j];
}
cout << wierdString;
return 0;
}
Контрольный пример:
ввода (STDIN)
abcd ef
Ваш выход (стандартный вывод)
4 2
abcdef
ebcd af
Ожидаемый результат
4 2
abcdef
ebcd af
Компилятор Сообщение
Неправильный ответ
Для меня (будучи новичком) вывод выглядит так же, как ожидаемый результат. Есть ли проблема с моим кодом (кроме using namespace std;
), который может привести к тому, что это не сработает? Я все еще новичок, и я хотел бы узнать, что не так.
Возможно, вы, вероятно, выводите еще несколько (невидимых) символов. Проверьте строки новой строки и т. Д. –
@AlexanderTorstling Я попытался копировать ожидаемый результат и полученный результат в Notepad ++ и включил все скрытые символы. Казалось, что они соответствуют (CR/LF в конце каждой строки). –
Почему весь этот цикл кода просто для обмена значениями? Существует 'std :: swap', который делает это для вас. 'std :: swap (firstString [0], secondString [0]);' – PaulMcKenzie