c - 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 是临时的。
解决方案
推荐阅读
- .net - 错误 <%@ Application Codebehind="Global.asax.cs" Inherits="Erpeo.MvcApplication" Language="C#" %>
- algorithm - 为什么在 Djkstra 算法中使用堆?
- flutter - 如何在 Flutter 中制作具有淡入淡出效果的轮播/滑块/图像切换器
- php - 使用路由 laravel 5.8 传递参数
- jmeter - 使用jmeter在重负载时重置连接
- php - 如何在 ul 中为特定人员消息的计数消息添加条件?
- python - 有条件地从数据框的列中的逗号分隔值中删除项目
- ios - ionic 3 和本地存储(即使在部署后也保留本地存储值)
- angular - 无法从角度的日期选择器中获取 ngForm 日期值
- c++ - 可以在 stl 容器上完成非类型模板参数吗?