C++基础递归调用编程问题
一道OpenJudge上的题,
我的问题是:这虽然是道递归调用题,可是我的代码好像并没有使用递归调用的方法,不知道如果要使用递归调用的话该是怎么样的用什么样的方式?
我的代码:
#include<iostream>
#include<string.h>
using namespace std;
int changeCharOrder(char table[]) {
int i = 0, j, k;
char *sptr = table; // 设置一个指针sptr获取table
char reversed[500]; // 设置一个用于存储翻转的字符数组
strcpy(reversed, sptr);
while (sptr[i]) { // 挨个判断sptr内容到末尾
while (sptr[i] > 0 && sptr[i] <= ' ') // 遇到空格i补1.
i++;
j = i; //j在这里存放i//所以在这第一次hello过的时候j从0开始,i=0
while (sptr[j] > ' ') // 统计单词长度(从i到j)
j++;
k = j; //存储单词结尾j.
while (i < j) // 单词翻转,把正常单词的末尾字符一个个一次从头赋给reversed
reversed[i++] = sptr[--k]; //i++使i作为下一个单词起始位置
}
cout << reversed << endl;
return 0;
}
int main() {
char c[500]= { '\0' };
cin.getline(c,500);
changeCharOrder(c);
return 0;
}
具体题目:
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入:
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出:
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不高兴开C++编辑器。。
python:
文字描述:
翻转函数(文字)
{
若 文字 长度为1
{
返回这个长度为1的文字本身
}
否则
{
返回 翻转函数(文字的第2~末尾字符组成的文字)和文字的第一个字符串联起来的文字
}
}
单词就这么干吧,先分割单词然后再一个个翻转