指针与字符串 大佬帮忙看看
/****对任意五个字符串按照由小到大的顺序排列****/#include "stdio.h"
#include "string.h"
#define N 5
void main ()
{
char str,(*p),(*q),*pt;
int i=0;
for(p=str;p<str+N;p++)
{ printf("input%d:",++i);
scanf("%s",*p); //初始化
}
for(p=str;p=str+N-1;p++)
{
for(q=p+1;q<str+N;q++)
{
if(strcmp(*p,*q)>0)
{
strcpy(pt,*p);
strcpy(*p,*q);
strcpy(*q,pt); //对字符串的大小排序 这里有个警告,pt没有初始化,没报错,为啥不能输出
}
}
}
for(p=str;p<str+5;p++)
{
printf("%s",*p);
}
} pt没有被分配空间,咋能存储临时数据 本帖最后由 张三ccccccc 于 2021-8-16 13:20 编辑
wp231957 发表于 2021-8-16 12:27
pt没有被分配空间,咋能存储临时数据
/****对任意五个字符串按照由小到大的顺序排列****/
#include "stdio.h"
#include "string.h"
#define N 5
void main ()
{
char str,(*p),(*q),pt=""; //这里改成这样
int i=0;
for(p=str;p<str+N;p++)
{ printf("input%d:",++i);
scanf("%s",*p); //初始化
}
for(p=str;p<str+N-1;p++) //这一行的条件写错了
{
for(q=p+1;q<str+N;q++)
{
if(strcmp(*p,*q)>0)
{
strcpy(pt,*p);
strcpy(*p,*q);
strcpy(*q,pt); //对字符串的大小排序
}
}
}
for(p=str;p<str+N;p++)
{
printf("%s ",*p);
}
}
页:
[1]