字符指针的问题

sun31009 2008-06-13 12:39:43
输入三个字符串,输出其中的最大字符串(要求用字符指针)

#include<stdio.h>
#include<string.h>
void main()
{
char *str1,*str2,*str3,*max;
str1=" ";
str2=" ";
str3=" ";
max=" ";
scanf("%s",str1);
fflush(stdin);
scanf("%s",str2);
fflush(stdin);
scanf("%s",str3);
if(strcmp(str1,str2)>0)
strcpy(max,str1);
else
strcpy(max,str2);
if(strcmp(max,str3)>0)
strcpy(max,max);
else
strcpy(max,str3);
printf("The max is: %s\n",max);
}

对字符指针的用法不是很熟悉,帮忙看看哪里出错了~
...全文
68 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sukyin 2008-06-13
  • 打赏
  • 举报
回复
对了,用完之后记得free掉。这是个好习惯。
sukyin 2008-06-13
  • 打赏
  • 举报
回复
str1=" ";
str2=" ";
str3=" ";
max=" ";

这种是不行的。这样的话,它们都是在栈上分配的内存,不能被写入。
因为要求用指针,所以需要用malloc去分配内存。否则char[]也行。
比如str1 = (char*)malloc(10*sizeof(char))。
robot1314 2008-06-13
  • 打赏
  • 举报
回复
char *str1,*str2,*str3,*max;
改为:
char str1[256],str2[256],str3[256],max[256];
sun31009 2008-06-13
  • 打赏
  • 举报
回复
就是必须要用指针,字符数组的我已经编好了~

69,381

社区成员

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

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