通过递归创建字符数组(用户输入)
Creating an array of characters (user-input) through recursion
我正在创建一个程序(其函数必须是递归的),它接受来自用户的一系列字符,以句点结束,并在屏幕上向后显示这些字符。一个示例运行应该给出:
Enter a character: H
Enter a character: i
Enter a character: .
iH
我写了一个函数来反转一个以字符数组及其大小为参数的数组。
void print_backwards(char a[], int size){
int i = size-1;
cout << a[i];
i--;
if(i >= 0){
print_backwards(a, i);
}
}
但是,在使用递归初始化字符数组时,我遇到了一个问题。我该如何解决这个问题? 这听起来像是一个家庭作业问题,所以我不打算为你解决这个问题。不过,我可以给你一个正确的方向。
创建一个函数,通过引用和偏移量获取一个字符数组。
在第一次调用函数时,给它一个0的偏移量,并将空数组传递给它。
函数本身应该从用户处读取一个字符。
如果字符是.
,则将一个空字节写入当前位置并返回当前偏移量,否则,将提供的字符写入当前位置,然后以offset+1再次调用该函数。
函数将返回输入的长度。
函数体看起来像
// Get character from user
if ( c == '.' ) {
input[offset] = ' ';
return offset;
} else {
input[offset] = c;
return thisFunction(input, offset+1);
}
相关文章:
- C++如何通过用户输入删除列表元素
- 如何使用用户输入在C++中正确填充2D数组
- C++MySQL C api用户输入行
- 如何只允许用户输入正整数
- C++如何计算用户输入的数字中的偶数位数
- 通过for循环使用用户输入填充列表
- 在C++中,我如何接受不同于同一行的用户输入
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- 显示基于用户输入的整数的字符
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 打印时有二叉树问题.用户输入不打印任何内容
- C ++奇怪的数组由用户输入
- 如何允许大写和小写用户输入?
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- 如何存储用户输入的所有数据,然后在他们想要查看所有数据时显示它们
- 如何使用用户输入变量制作二维数组?
- 用户输入字符串的文件附加问题..C++
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 如何使用递归循环我的代码(当用户输入无效输入时,它会再次提示他们)?