|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
比较输入五句话的长短
#include<stdio.h>
#include<string.h>
int main()
{
char a[5][25],b[5][25];
int j;
for(int i=0; i<5; i++)
{
j=0;
printf("请输入第%d句话:",i+1);
while((a[i][j++]=getchar())!='\n')
;
}
printf("你输入了下边5句话:\n");
for(int i=0; i<5; i++)
{
printf("%s",a[i]);
}
for(int i=0; i<5; i++)
{
for(j=0; j<4-i; j++)
{
if(strlen(a[j])>strlen(a[j+1])) //这个地方为什么不能用sizeof(a[j])>sizeof(a[j+1}) 我用sizeof显示错误的结果
{
strcpy(b[j],a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],b[j]);
}
}
}
printf("其中最长的是:%s",a[4]);
printf("其中最短的是:%s",a[0]);
}
本帖最后由 jackz007 于 2020-12-24 20:05 编辑
sizeof() 获取变量占用的内存空间,而 strlen() 获取的是字符数组中字符的数量,就好比一个容量为 100 只鸡蛋的盒子里只装了 3 只鸡蛋,那么,sizeof() 得到的是 100,而 strlen() 将得到 3,那么你呢,在此例中,你是希望得到字符数组的容量还是里面实际储存了多少字符?
|
|