定义子函数如何确定里面的实参?
编写一个程序,主函数中定义并输入字符串,分别调用子函数(自定义),统计(0-9)数值的个数、(a-z、A-Z)字符的个数、空格的个数,主函数中输出结果。我编写了如下程序,...
编写一个程序,主函数中定义并输入字符串,分别调用子函数(自定义),统计(0-9)数值的个数、(a-z、A-Z)字符的个数、空格 的个数,主函数中输出结果。
我编写了如下程序,但不知道如何确定实参?请高手详细说说?
#include<iostream>
#include<string>
using namespace std;
int main()
{void count( );
int m,k,n,j;
char word[20];
gets(word);
count(m,n,k,j);
return 0;}
void count( )
{char word[20];
int i,m=0,k=0,n=0,j=0;
for(i=0;i<20&&word[i]!='/0';i++)
{if(word[i]>='A'&&word[i]<='Z')
m++;
else if(word[i]>='a'&&word[i]<='z')
n++;
else if (word[i]>='0'&&word[i]<='9')
k++;
else if(word[i]==' ')
j++;}
cout<<m<<n<<k<<j<<endl;
}
请解释一下函数里的形参与实参的确定方法。不用指针如何实现本题要求。 展开
我编写了如下程序,但不知道如何确定实参?请高手详细说说?
#include<iostream>
#include<string>
using namespace std;
int main()
{void count( );
int m,k,n,j;
char word[20];
gets(word);
count(m,n,k,j);
return 0;}
void count( )
{char word[20];
int i,m=0,k=0,n=0,j=0;
for(i=0;i<20&&word[i]!='/0';i++)
{if(word[i]>='A'&&word[i]<='Z')
m++;
else if(word[i]>='a'&&word[i]<='z')
n++;
else if (word[i]>='0'&&word[i]<='9')
k++;
else if(word[i]==' ')
j++;}
cout<<m<<n<<k<<j<<endl;
}
请解释一下函数里的形参与实参的确定方法。不用指针如何实现本题要求。 展开
1个回答
展开全部
字符数组将首位指针传入,可以在子函数中访问数组内容。
整形以地址指针传入,可以在子函数中修改整形的数值。
void count(char *word, int *m, int *n, int *k, int *j )
{
int i;
for(i = 0;i < 20 && word[i] != '/0'; i++)
{
if(word[i] >= 'A' && word[i] <= 'Z')
(*m)++;
else if(word[i] >= 'a' && word[i] <= 'z')
(*n)++;
else if(word[i] >= '0' && word[i] <= '9')
(*k)++;
else if(word[i] == ' ')
(*j)++;
}
}
int main()
{
int m = 0,k = 0,n = 0,j = 0;
char word[20];
gets(word);
count(word, &m, &n, &k, &j);
cout<<m<<n<<k<<j<<endl;
return 0;
}
整形以地址指针传入,可以在子函数中修改整形的数值。
void count(char *word, int *m, int *n, int *k, int *j )
{
int i;
for(i = 0;i < 20 && word[i] != '/0'; i++)
{
if(word[i] >= 'A' && word[i] <= 'Z')
(*m)++;
else if(word[i] >= 'a' && word[i] <= 'z')
(*n)++;
else if(word[i] >= '0' && word[i] <= '9')
(*k)++;
else if(word[i] == ' ')
(*j)++;
}
}
int main()
{
int m = 0,k = 0,n = 0,j = 0;
char word[20];
gets(word);
count(word, &m, &n, &k, &j);
cout<<m<<n<<k<<j<<endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询