OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7067|回复: 16

c语言字符串长度计算算法,大佬帮忙指点一下

[复制链接]

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
发表于 2021-9-13 15:09:48 | 显示全部楼层 |阅读模式
这个计算字符串长度的两个算法,为什么不能用右边的啊,好心人帮忙解决一下
微信图片_20210913150558.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-13 15:17:02 | 显示全部楼层
本帖最后由 日渐秃兀 于 2021-9-13 15:23 编辑

一个是算'\n'   一个是算'\n'和'\0'? 而且到'\n'  之后就不++了那还会到'\0'?看错请指导哈!
回复 支持 1 反对 0

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 15:22:34 | 显示全部楼层
日渐秃兀 发表于 2021-9-13 15:17
一个是算'\n'   一个是算'\n'和'\0'?

里面不是或吗?跟左边用的if判断一样的啊感觉
回复 支持 反对

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-13 15:26:30 | 显示全部楼层
Toughguy 发表于 2021-9-13 15:22
里面不是或吗?跟左边用的if判断一样的啊感觉

左边是思想大概的意思不是到'\n'结束? 而右边思想 到'\0' 不也有一次满足++?没说这个能不能对 只是思路
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 15:29:16 | 显示全部楼层
日渐秃兀 发表于 2021-9-13 15:26
左边是思想大概的意思不是到'\n'结束? 而右边思想 到'\0' 不也有一次满足++?没说这个能不能对 只是思路

上机试了左边的程序,没有结果的
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 15:32:16 | 显示全部楼层
Toughguy 发表于 2021-9-13 15:29
上机试了左边的程序,没有结果的

这是全部代码,用左边的的不出结果
6cdbc425336c05439ea7600bda278fc.jpg
回复 支持 反对

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8679
金钱
8679
注册时间
2020-5-11
在线时间
4159 小时
发表于 2021-9-13 15:42:47 | 显示全部楼层
楼主为啥说“不能用右边的”? 用了会怎样?
“用左边的的不出结果”是啥情况?死机?
专治疑难杂症
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 15:58:44 | 显示全部楼层
LcwSwust 发表于 2021-9-13 15:42
楼主为啥说“不能用右边的”? 用了会怎样?
“用左边的的不出结果”是啥情况?死机?

不能用左边的,用左边的不对
回复 支持 反对

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8679
金钱
8679
注册时间
2020-5-11
在线时间
4159 小时
发表于 2021-9-13 16:09:52 | 显示全部楼层
本帖最后由 LcwSwust 于 2021-9-13 16:11 编辑
Toughguy 发表于 2021-9-13 15:58
不能用左边的,用左边的不对

不要只说“不对”,
要用数据说话,比如你输入了什么、数组word[]每个字符是什么、运行结果是什么?“对”的应该是什么?
等你描述清楚了,也许问题已经解决了。
专治疑难杂症
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 16:16:21 | 显示全部楼层
LcwSwust 发表于 2021-9-13 16:09
不要只说“不对”,
要用数据说话,比如你输入了什么、数组word[]每个字符是什么、运行结果是什么?“对 ...

输入的就是和用右边的算法一样的内容,输出的是说什么空间不够
回复 支持 反对

使用道具 举报

11

主题

2153

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4936
金钱
4936
注册时间
2015-1-10
在线时间
618 小时
发表于 2021-9-13 16:18:06 | 显示全部楼层
这么写会比strlen效率高很多吗?
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 16:23:52 | 显示全部楼层
阿侑kevin 发表于 2021-9-13 16:18
这么写会比strlen效率高很多吗?

只是在学习指针哈
回复 支持 反对

使用道具 举报

12

主题

3399

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8679
金钱
8679
注册时间
2020-5-11
在线时间
4159 小时
发表于 2021-9-13 16:28:29 | 显示全部楼层
Toughguy 发表于 2021-9-13 16:16
输入的就是和用右边的算法一样的内容,输出的是说什么空间不够

建议数组定时义赋初值0:
char word[N]={0};
再出问题,我没话说了。
专治疑难杂症
回复 支持 反对

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-13 16:31:33 | 显示全部楼层
本帖最后由 日渐秃兀 于 2021-9-13 16:32 编辑
Toughguy 发表于 2021-9-13 16:23
只是在学习指针哈

而且到'\n'  之后就不++了那还会到'\0'?看错请指导哈! 前面说过了 左边那样设计 只要到'\n' 就相当于死循环了
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 17:00:57 | 显示全部楼层
日渐秃兀 发表于 2021-9-13 16:31
而且到'\n'  之后就不++了那还会到'\0'?看错请指导哈! 前面说过了 左边那样设计 只要到'\n' 就相当于死 ...

到换行不就结束了吗啊,为什么还会有死循环啊
回复 支持 反对

使用道具 举报

17

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
225
金钱
225
注册时间
2018-10-13
在线时间
44 小时
 楼主| 发表于 2021-9-13 17:06:31 | 显示全部楼层
LcwSwust 发表于 2021-9-13 16:28
建议数组定时义赋初值0:
char word[N]={0};
再出问题,我没话说了。

初始化了结果还是core dumped
回复 支持 反对

使用道具 举报

7

主题

480

帖子

0

精华

高级会员

Rank: 4

积分
783
金钱
783
注册时间
2021-4-15
在线时间
305 小时
发表于 2021-9-13 18:12:52 | 显示全部楼层
本帖最后由 日渐秃兀 于 2021-9-13 18:17 编辑
Toughguy 发表于 2021-9-13 17:00
到换行不就结束了吗啊,为什么还会有死循环啊

你那个while 是到'\0'结束循环吧!他到不了'\0' 代'\n' 进去循环分析不就知道了 if 不执行 *p 一直是'\n' 也说了是思路 而不是你这个能不能用 看着左边的已经的设计的凉凉的了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 13:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表