перевод строки слов в другую строку слов

#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. Обратите внимание, что единственная полезная информация от человека-это длина строки