指针数组的问题

cxsea2005 2007-04-27 02:34:42
#include <stdio.h>
#include <string.h>

void cStringSort(char *s[]);

void main()
{
char *s[3];//= {"creat","wall","ballet"};
char *p = NULL;
int i;
for (i = 0; i < 3; i++)
//{
gets(s[i]);
//}
cStringSort(s);
for (i = 0; i < 3; i++)
{
printf("%s ",s[i]);
}
}

void cStringSort(char *s[]){
int i,j;
char *temp;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3-i; j++)
{
if (strcmp(s[j],s[j+1]) > 0)
{
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}

怎么字符串输入有错? 帮帮忙给讲讲。
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
bargio_susie 2007-04-27
  • 打赏
  • 举报
回复
^_^ LS 的强
xlbdan 2007-04-27
  • 打赏
  • 举报
回复
换成C语言的。

只把new对应换成malloc来实现就行了


#include <stdio.h>
#include <string.h>

void cStringSort(char *s[]);

void main()
{
int i;
char *s[3];

for(i=0;i<3;i++) //这里用循环给数组指针分别分配空间,为了gets
s[i]=(char*)malloc(sizeof(char)*10);
char *p = NULL;

for (i = 0; i < 3; i++)
gets(s[i]);

cStringSort(s);
for (i = 0; i < 3; i++)
{
printf("%s ",s[i]);
}
}

void cStringSort(char *s[]){
int i,j;
char *temp;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3-i; j++)
{
if (strcmp(s[j],s[j+1]) > 0) //比较开始
{
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}

xlbdan 2007-04-27
  • 打赏
  • 举报
回复
两个贴子?

楼主在你那个贴里我回复了,

在给你贴过来吧

修改完毕,运行正常

楼主的错误我都在下面做注释

#include <stdio.h>
#include <string.h>

void cStringSort(char *s[]);

void main()
{
int i;
char *s[3];

for(i=0;i<3;i++) //这里用循环给数组指针分别分配空间,为了gets
s[i]=new char[10];
char *p = NULL;

for (i = 0; i < 3; i++)
gets(s[i]);

cStringSort(s);
for (i = 0; i < 3; i++)
{
printf("%s ",s[i]);
}
}

void cStringSort(char *s[]){
int i,j;
char *temp;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3-i; j++)
{
if (strcmp(s[j],s[j+1]) > 0) //比较开始
{
temp = s[j];
s[j] = s[j+1];
s[j+1] = temp;
}
}
}
}

69,373

社区成员

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

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