#c #arrays #string #function
Вопрос:
Мне нужна программа , которая получает a char[]
в качестве входных данных и выводит a char[]
одинаковой длины, но ее первый символ-a w
, последний-a f
, а все промежуточные символы- o
s.
Если ввод имеет размер один, то вывод должен быть de 'w'
, а если он содержит 2 символа, то должен быть wf
.
Пример: «StackOverflow» => «wooooooooooof»
#include <iostream>
#include <cstring>
using namespace std;
void translate(char human[], char dog[]); //human is input and dog is output
int main()
{
char human[100], dog[100];
cout << "Enter a string: ";
cin.getline(human, 100);
for (int i = 0; i < strlen(human); i )
{
dog[i] = human[i];
}
dog[strlen(human)] = '';
cout << dog << endl;
return 0;
}
void translate (char human[], char dog[])
{
for (int i = 0; i < strlen(human); i )
{
dog[i] = human[i];
}
}
Комментарии:
1. Программа компилируется, и независимо от того, что вводит пользователь, например «привет», программа выведет «привет». Я знаю, что мне не хватает нескольких шагов, чтобы получить то, что я хочу создать. Он должен выводить «уууу» вместо «привет».
2. ваш код даже не пытается делать то, что вы от него ожидаете, и вы никогда не вызываете
translate
функцию вmain
Ответ №1:
Может быть, это:
for (int i = 0; i < strlen(human); i )
{
if(i == 0)
{
dog[i] = 'w';
}
else if(i == (strlen(human)-1))
{
dog[i] = 'f';
}
else
{
dog[i] = 'o';
}
}
Комментарии:
1. Обратите внимание, что единственная полезная информация от человека-это длина строки