用strlen得到长度进行比较,将长度最长的替换为b
运行结果:
代码;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void replaceString(char* a[],int n,char* b)
{
int i;
int index = 0;
for(i=1;i<n;i++)
{
if(strlen(a[i]) > strlen(a[index]))
index = i;
}
a[index] = b;
}
int main()
{
char *a[5]={0};
char b[20]={0};
int i;
for(i=0;i<5;i++)
a[i] = (char*)malloc(20);
printf("请输入代表奥运五环的5个字符串:\n");
for(i=0;i<5;i++)
scanf("%s",a[i]);
printf("请输入另一种颜色字符串:\n");
scanf("%s",b);
replaceString(a,5,b);
printf("替换后的奥运五环颜色为:\n");
for(i=0;i<5;i++)
printf("%s ",a[i]);
return 0;
}
非标准答案,仅供学习参考!
#include <stdio.h>
#include <string.h>
void replace(char (*a)[10], int n, char *b)
{
int max = 0, index;
for (int i = 0; i < n; i++)
{
if (strlen(a[i]) > max)
{
max = strlen(a[i]);
index = i;
}
}
strncpy(a[index], b, strlen(b));
}
int main(int argc, char *argv[])
{
//blue2. black 3. red 4. yellow5. green
char a[5][10];
char b[10] = "'\0'";
for (int i = 0; i < 5; i++)
{
scanf("%s", a[i]);
}
scanf("%s", b);
replace(a, 5, b);
for (int i = 0; i < 5; i++)
{
printf("%s ", a[i]);
}
return 0;
}