Как переместить первую букву слова в конец в C : глава 10 # 16

#c

#c

Вопрос:

Я пытаюсь переместить первую букву слова в конец, а затем добавить «ay» в конец. Это не относится к главе 10 programming challenge 16 в книге C с грейпфрутом на обложке.

Я понятия не имею, с чего начать.

Вот код, который у меня есть до сих пор:

 #include <iostream>
#include <string>
#include <iomanip>
#include <cstdlib>
#include <cctype>
#include <cstring>

using namespace std;

//Function Prototypes
void toUpper(char *);
void reArrange(char *);
//string addAY(char);

//Consistent Variables
const int SIZE = 100;

int main() {

    //User input holder
    char input[SIZE];

    //Prompt
    cout << "Please enter a phrase: " << endl;
    cin.getline(input, SIZE);

    //Function calls



    //Print pig latin
    cout << "You entered: ";
    toUpper(input);
    cout << endl;
    cout << "Transalted to pig latin: " << endl;

    system("pause");
    return 0;
}

void toUpper(char *input) {

    int i = 0;
    char c;
    while (input[i])
    {
        c = input[i];
        putchar(toupper(c));
        i  ;
    }
}

void reArrange(char *input) {



}
  

Комментарии:

1. Ну, это, вероятно, не лучшее место для начала. Существует множество руководств по C для начинающих. Дайте им шанс, и когда вы застряли на конкретной проблеме, не стесняйтесь обращаться сюда за помощью.

Ответ №1:

Есть много способов сделать это. Вот один:

 std::string word = "hello";
word = word.substr(1, word.length() - 1)   word.front()   "ay";
std::cout << word;
  

Вывод:

 ellohay
  

Для правильного решения вы также хотите выполнить некоторую проверку диапазона.

Ответ №2:

Как заявил @J.R., есть много способов сделать это. Я бы использовал std::string, а не char * .

Вот один из способов:

 #include <iostream>
#include <string>

using namespace std;

//Function Prototypes
void reArrange(std::stringamp; str);
void addAy(std::string amp;str);
//string addAY(char);

//Consistent Variables
const int SIZE = 100;

int main()
{

  //User input holder
  std::string input_line;
  //Prompt
  std::cout << "Please enter a phrase: " << endl;
  std::getline(std::cin, input_line);

  //Print pig latin
  std::cout << "You entered: " << input_line << endl;
  std::cout << "Transalted to pig latin: " << endl;

  reArrange(input_line);
  addAy(input_line);

  cout << input_line << ":n";
  std::string wait_var;
  std::cin >> wait_var;
  return 0;
}

// pass by reference
void addAy(std::stringamp; str) {
  str  = "ay";
}

//pass by reference
void reArrange(std::stringamp; str)
{
  char first_letter = str[0];
  str = str.substr(1, str.length()-1)   first_letter;
}