我正在用C ++编写一个程序,将一个句子翻译成猪拉丁语,只需要取出单词的第一个字母并将其带到最后然后添加“ay”示例“hello world”变成“ellohay orldway”但是它没有工作,香港专业教育学院尝试了几种不同的方式,在这一点上我即将放弃,请有人帮助我这样做。
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
void seperator(char []);
int main()
{
string input;
const int SIZE = 40;
char sent[SIZE];
cout << " enter sentence " << endl;
cin >> input;
cin.getline(sent, SIZE);
seperator(sent);
cout << input << endl;
system ("pause");
return 0;
}
void seperator(char input[])
{
int count = 0;
char x;
while (input[count] != '\0')
count++;
if (isalpha(input[count]))
x =input[count];
if (input[count] == ' ')
input[count] = (x + ' ');
if (input[count] == ' ')
input[count] = 'ay';
}
答案 0 :(得分:4)
您的cin >> input;
只是将字符串放到第一个空格,因此hello
和world
之间的空格。
这就是为什么除了第一个单词之外它似乎都在删除所有内容,你应该使用类似的东西
std::getline (std::cin,input);