C语言比较字符串大小

hamsenxyz 2010-12-02 03:15:09
就是想把输入的字符串进行大小比较并输出最大的字符串,下面的程序错在哪里呢
#include<stdio.h>
#include<string.h>
#include <malloc.h>
int main()
{
char str[100];
int n,i,j;
printf("请输入要比较的数的个数\n");
scanf("%d",&n);
printf("请输入要比较的数\n");
for(int j=0;j<n;j++)
{
scanf("%s",&str[j]);
}
for(int i=0;i<n;i++)
{
if(strcmp(str[i+1],str[i])>0)
{
str[i]=str[i+1];
}
}
printf("最大值是%s",str[i]);

return 0;
}
...全文
241 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hamsenxyz 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dubiousway 的回复:]

引用 7 楼 hamsenxyz 的回复:

不明白为什么要用二维char数组,只是比较字符串而已啊


一个字符串 "abcd" ,用 char a[100] // ={'a','b','c','d',0}
2 个字符串,你怎么放?
[/Quote]

char a[100]不是可以放100个字符串的吗?
dubiousway 2010-12-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hamsenxyz 的回复:]

不明白为什么要用二维char数组,只是比较字符串而已啊
[/Quote]

一个字符串 "abcd" ,用 char a[100] // ={'a','b','c','d',0}
2 个字符串,你怎么放?

hamsenxyz 2010-12-02
  • 打赏
  • 举报
回复
不明白为什么要用二维char数组,只是比较字符串而已啊
bluewanderer 2010-12-02
  • 打赏
  • 举报
回复
我写那些就是在告诉你别用strcpy....

char str[100][100]就是100x100的二维char数组,会给你开辟10000字节的空间。
hamsenxyz 2010-12-02
  • 打赏
  • 举报
回复
str[i]=str[i+1];事这里错了,把它改为strcpy(str[i],str[i+1]);就行啦,多谢各位啊,不过我还想问一下char str[100][100]这个代表什么?
bluewanderer 2010-12-02
  • 打赏
  • 举报
回复
char str[100][100]
char *pstr[100];

for (int i = 0; i < 100; i++)
{
pstr[i] = str[i];
}

...

pstr[i] = pstr[i+1];
hamsenxyz 2010-12-02
  • 打赏
  • 举报
回复
if(strcmp(str[i+1],str[i])>0)
{
str[i]=str[i+1];
}
应该是这里错了,怎样把str[i+1]的值赋给str[i]
hamsenxyz 2010-12-02
  • 打赏
  • 举报
回复
还是有一个错误啊[Error] C:\Users\hamsen\Documents\C-Free\Temp\未命名1.cpp:19: error: ISO C++ forbids assignment of arrays
dubiousway 2010-12-02
  • 打赏
  • 举报
回复
char str[100][100];
int n,i,j;
printf("请输入要比较的数的个数\n");
scanf("%d",&n);
printf("请输入要比较的数\n");
for(int j=0;j<n;j++)
{
scanf("%s",str[j]);
}

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧