#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;
}