C++,关于具体化的问题
答案:2 悬赏:20
解决时间 2021-03-21 16:31
- 提问者网友:神仙爷爷
- 2021-03-20 19:14
程序包含一个具体化,它将char指针数组和数组中的指针数量作为参数,并返回最长的字符串地址。如果有多个这样的字符串,则返回其中的哥字符串的地址,使用由5个字符串指针组成的数组来测试该具体化。 新人求高手解答,我编了一直是错误的?、
最佳答案
- 二级知识专家网友:爱情是怎么炼成的
- 2021-03-20 20:27
char * strg (char *p[],int i) //找出字符指针数组中最大的字符串。
{
char *q=NULL; //Q表示暂存字符串
int n,j;
n=0;
for(j=n+1;j if(strcmp(p[n],p[j])<0) //比较字符串,如果p[n] {
q=p[n]; //经过交换后最前一个就是最大的字符串
p[n]=p[j];
p[j]=q;
}
return p[0];
}
其中使用了strcmp函数比较字符串的大小,所以要加上头文件
char * strig (char *p[],int i) //找出字符指针数组中最长的字符串。
{
int n,j,r=0;
n=strlen(p[0]); //将n初始为第一个元素的长度
for(j=1;j {
if(n
{
r=j; //记录最长字符串的下标
n=strlen(p[j]); //使用strlen函数要加头文件
}
}
return p[r]; //返回最长字符串
}
上面的那一个函数是我刚开始没看清问题写的。
{
char *q=NULL; //Q表示暂存字符串
int n,j;
n=0;
for(j=n+1;j if(strcmp(p[n],p[j])<0) //比较字符串,如果p[n] {
q=p[n]; //经过交换后最前一个就是最大的字符串
p[n]=p[j];
p[j]=q;
}
return p[0];
}
其中使用了strcmp函数比较字符串的大小,所以要加上头文件
char * strig (char *p[],int i) //找出字符指针数组中最长的字符串。
{
int n,j,r=0;
n=strlen(p[0]); //将n初始为第一个元素的长度
for(j=1;j {
if(n
r=j; //记录最长字符串的下标
n=strlen(p[j]); //使用strlen函数要加头文件
}
}
return p[r]; //返回最长字符串
}
上面的那一个函数是我刚开始没看清问题写的。
全部回答
- 1楼网友:山鬼偶尔也合群
- 2021-03-20 20:37
帮你写好了,给点分数吧。linux下编译的命令:
gcc -g -o max max.cpp -lstdc++
#include
#include
using namespace std;
//模板函数
template
ty maxn(ty array[], const size_t size)
{
ty max=array[0];
for(size_t i=0; i max )
{
max = array[i];
}
}
return max;
}
//模板特化函数
const char* maxn(const char* array[], const size_t size)
{
size_t max=strlen(array[0]);
size_t slen = 0;
const char* mstr = array[0];
for(size_t i=0; i max )
{
max = slen;
mstr = array[i];
}
}
return mstr;
}
int main( void )
{
int x1[] = {3,4,1,7,5,6}; //6个元素的int数组
double x2[] = {3.1, 3.2, 4.1, 1.2};//4个元素的double数组
const char* x3[] = {"int","float","char","double","long"};//5个元素的字符串指针数组
//不同的数组调用maxn函数
int m1 = maxn(x1, sizeof(x1)/sizeof(x1[0]));
double m2 = maxn(x2, sizeof(x1)/sizeof(x2[0]));
const char* m3 = maxn(x3, sizeof(x3)/sizeof(char*));
//输出结果
cout << "maxn( x1 ) = "<< m1 << endl;
cout << "maxn( x2 ) = "<< m2 << endl;
cout << "maxn( x3 ) = "<< m3 << endl;
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯