C语言字符串 函数问题 谢谢
#include <stdio.h>
#include <string.h>
#define J 100
void paixu(char,int);
void main()
{
char a[J][20];
int i,n;
printf("请输入您想输入的国家名称个数:");
scanf("%d",&n);
printf("\n请输入国家名称:");
for(i=0;i<n;i++)
{
gets(a[i]);
}
paixu(a,n);
}
void paixu(char k[],int n)
{
int i,j;
char temp[20];
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strcmp(k[j],k[j+1])>0)
{
strcpy(temp,k[j]);
strcpy(k[j],k[j+1]);
strspy(k[j+1],temp);
}
}
}
for(i=0;i<n;i++)
{
puts(k[i]);
printf("\n");
}
}
麻烦帮看下哪里有问题谢谢
还有请问 2维数组可以之些一个下标赋值?
这里有点晕
参考答案:将参数改为下列就可以了
void paixu(char a[][20],int);
void paixu(char k[][20],int n)
{
int i,j;
char temp[20];
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(strcmp(k[j],k[j+1])>0)
{
strcpy(temp,k[j]);
strcpy(k[j],k[j+1]);
strspy(k[j+1],temp); /* 错误 为 strcpy */
}
}
}
for(i=0;i<n;i++)
{
puts(k[i]);
printf("\n");
}
}