问题描述
- C语言比较字符串大小
-
#include
#include
void sort(char *name[],int n);
void print(char *name[],int n);
int main()
{
char *name[]={"C programming","BASIC","Java","FORTRAN","Computer"};
int n=5;
sort(name,n);
print(name,n);
return 0;
}
void sort(char *name[],int n)
{
char *temp;
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
if(strcmp(name[k],name[i])<0)
k=j;
if(k!=i)
{
temp=name[i];
name[i]=name[k];
name[k]=temp;
}
}
}
void print(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
puts(name[i]);
}/*
1.程序运行结果:
C programming
BASIC
Java
FORTRAN
Computer
*/
====求教该程序是比较字符串大小吗?为何结果是那样呢?求程序详细解释
解决方案
//这里是j
if(strcmp(name[j],name[i]) < 0)
k=j;
解决方案二:
该程序是字符串排序,并且sort试图用冒泡法排序,但是写的不对。不知道你为什么定义k,直接交换i和i+1就可以了。
解决方案三:
字符串比较 c语言
字符串大小比较
C语言字符串的比较和Switch
解决方案四:
你的sort程序写错了,你的程序都是字符串,但是temp只是一个字符向量,即temp中只能存放一个字符,所以不能进行交换。
解决方案五:
而且字符串也不能用这种形式进行交换啊,temp=name这是错误的语法。
时间: 2024-11-16 20:16:45