c - 返回指向具有最小 ASCII 值的字符的指针的程序
问题描述
我写了以下程序
char *smallest_charachter(char str[]) {
int * min = &str[0];
int size = strlen(str);
for (i=1; i<size; i++)
{
if (str[i]<*min)
{
min = str[i];
}
}
return min;
}
此函数旨在返回指向具有最小 ASCII 值的字符的指针。做了一些测试后,我的功能无法正常工作,我似乎无法弄清楚问题是什么。任何修复我的功能的提示或技巧都会有很大帮助。
解决方案
strlen
如果我们使for
循环有条件,则无需使用:str[i]
min
应该char *min
和不是 int *min
。
您混淆了 setup 和 test 以及min
. 在循环中,当你应该从值的地址设置它时,你从字符值设置它。
你不定义i
.
这是一些重构的代码:
char *
smallest_charachter(char str[])
{
char *min = &str[0];
for (int i = 1; str[i]; ++i) {
if (str[i] < *min)
min = &str[i];
}
return min;
}
推荐阅读
- java - REST 服务 - 返回结构化 json 时是否有最佳实践?
- optimization - 依赖图,如何找出CD、CCD和ACD
- javascript - 网站如何限制读者浏览
- python - PyQT5 不显示打开和保存对话框
- android - 按钮 setLayoutParams 和 setDrawable Android
- bolt-cms - 是否可以在 Bolt CMS 4 中构建模块化页面?类似于 GravCMS 模块化页面或 SuluCMS 内容块
- c# - 试图对硬盘进行压力测试,但 Windows 在读取期间显示没有硬盘使用情况
- html - 去掉 div 之间的空格
- ruby - ruby gem`grpc`没有连接到通过`grpcurl`命令行连接的服务
- javascript - 角度的导入和导出