首页 > 解决方案 > C 文件解决任务,然后在命令中打印出随机字符并自行崩溃

问题描述

所以我的任务是取一个句子并按字母顺序打印出第一个句子。例如ball car tshirt应该打印ball我设法做到的。棘手的一点是,当两个单词的首字母相同时,它应该进行更多的比较。我做了这个乱七八糟的算法,它可以工作,但会打印出随机字符并使程序崩溃(下面的屏幕截图)。编码

#include <stdio.h>
#include <stdlib.h>

int main()
{

    char str[100];
    char *p, *pz , *p1, *p2;

    printf("\nEnter sentence: ");
    fgets(str, 60, stdin);

    p=str;
    pz=p;

    while(*p!='\0'){
        if(*p == ' '){
            p++;
            if(*p<*pz){
                pz=p;
            }else if(*pz == *p){
                p1=p;   //temp
                p2=pz;  //temp
                p1++;
                p2++;
                while(*p2 != '\0' && *p1 != '\0'){

                    if (*p1 != '\0'){
                        pz=p;
                        break;
                    }else if(*p2 != '\0'){
                        break;
                    }else {
                        if(*p1 < *p2){
                            pz=p;
                            break;
                        }else{
                            p1++;
                            p2++;
                        }
                    }

                }
            }
        }
        p++;
    }



    while(*pz != ' '){
        printf("%c", *pz);
        pz++;
    }

    printf("\n");

    return 0;
}

指针 pz 应该是将被打印出来的指针,指针 p 是完成所有工作的指针,指针 p1 和 p2 是临时的。

问题[1]

标签: cpointerscrashsentence

解决方案


推荐阅读