通过for循环调用函数
Calling a function through a for loop
请原谅我的英语和无知(此外,我搜索了很多,找不到这个问题的答案)。
我有一个程序,它有5个整数变量,创意名称从"num1"到"num5"。我有一个次要函数,它需要两个参数,第一个参数是一个数字,1-5,而第二个参数是变量num1到num5的值(如果它有助于你概念化,我会计算单个用户条目中特定长度的单词数量)。
例如,如果用户输入短语"黑猫午餐吃了煎鱼",则值为:
num1 = 1 (a)
num2 = 0
num3 = 4 (the, cat, ate, for)
num4 = 1 (fish)
num5 = 3 (black, fried, lunch)
我的代码大部分看起来是这样的(我只是发布适用的部分,所以假设num1-num5变量在其他地方已经给定了值):
int main()
{
int num1, num2, num3, num4, num5;
printCount(1, num1);
printCount(2, num2);
printCount(3, num3);
printCount(4, num4);
printCount(5, num5);
}
void printCount(int numberLetters, int numberWords)
{
cout << numberLetters << "-letter words: " << numberWords << endl;
}
我试图找到一种方法来避免调用printCount()的5行代码,但我找不到用循环更改第二个参数的方法。有没有一种方法可以使用非常简单的方法来处理这个问题?
使用数组:
int nums[5];
// initialize array elements
for (int i = 0; i < 5; i++)
{
printCount(i + 1, nums[i]);
}
但你也需要传递单词。
如果句子中包含超过5个字母的单词怎么办?因此,使用固定大小的数组并不是一种灵活的方式
我建议您使用以下原型创建一个函数。函数接受std::字符串并返回提取的单词:
vector<vector<string>> extractWords(const string& sentence);
函数将返回一个或多个向量。每个内部向量都包含相同长度的单词。阅读std::vector。
很简单,您需要一个数组。这就是使用时main()
函数的样子
int num[5];
for (int i = 0; i < 5; i++) {
printCount(i+1, num[i]);
}
只需通过添加循环来修改主函数。
int main()
{
int num1, num2, num3, num4, num5;
int arr1[5] = {1,2,3,4,5};
int arr2[5] = {num1,num2,num3,num4,num5};
for(int i = 0 ; i <=sizeof(arr1)-1 li++){
printCount(arr1[i], arr2[i]);
}
}
相关文章:
- 函数调用中参数的顺序重要吗
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 变量没有改变?通过向量的函数调用
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 模板函数调用
- 获取从C++中同一类中的构造函数调用的方法返回的值
- 析构函数调用
- 成员函数调用和C++对象模型
- 使用共享指针的函数调用,其对象应为 const
- C++:编译时检查匹配的函数调用对?
- 函数调用C++中的参数太少
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- 返回指向对象的指针的函数调用是否为 prvalue?
- C++ 如何重载 [] 运算符并进行函数调用
- 代码的效率. 转到和函数调用
- 是同一作用域的函数部分中的函数调用
- 如何封装一个函数,以便它只能由同一类中的一个其他函数调用?
- 类型擦除的std::function与虚拟函数调用的开销