张三ccccccc 发表于 2021-8-16 11:29:38

指针与字符串 大佬帮忙看看

/****对任意五个字符串按照由小到大的顺序排列****/
#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);
        }
}

wp231957 发表于 2021-8-16 12:27:57

pt没有被分配空间,咋能存储临时数据

张三ccccccc 发表于 2021-8-16 12:55:46

本帖最后由 张三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]
查看完整版本: 指针与字符串 大佬帮忙看看