作者Billeve (瑞树啊瑞树)
看板C_and_CPP
标题[问题] 有关C的字串比较问题
时间Wed Apr 15 23:07:38 2020
因为平常都是使用C++的缘故,
所以对於C有点不熟悉
我想要检查一个字串内是不是含有换行符号
因此我这样写
for(字串)
if(yytext[i]=='\n')
……
yytext 是我想要检查的字串
但是结果却不如我的预期
对於上述写法,有警告讯息
comparison between pointer and integer
因此我有试图改写成
for(字串)
if(&yytext[i]=='\n')
……
但是仍然有一样的警告,
有上网找过这类问题了,
但是都没有看到跟我一样的问题
输入:
“/*
djkslslskkdkf
*/”
预期输出:
“/* (找到换行符号)
djkslslskkdkf (找到换行符号)
*/”
实际输出:
“/*
djkslslskkdkf
*/”
注: 後来我又重新编译过一边,
结果就好了,我一行都没改,
所以可能是编译器的问题(?
-----
Sent from JPTT on my Samsung SM-J700F.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.50.185.43 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1586963260.A.9BA.html
1F:→ james732: strcmp 04/15 23:39
2F:→ james732: 我好像误会你的意思了,不要理一楼 04/15 23:39
※ 编辑: Billeve (110.50.185.43 台湾), 04/16/2020 00:00:22
3F:→ Billeve: 虽然不知道为什麽对了,但是我还是想确定一下我这种写法 04/16 00:01
4F:→ Billeve: 是对的吗? 04/16 00:01
5F:→ LiloHuang: 没有完整原始码不好确认,我猜你一开始应该打成双引号? 04/16 00:14
可是我是整个专案没有改重新编译欸,觉得玄
6F:推 ctrlbreak: yytext 宣告成什麽型态? 04/16 00:18
7F:→ Billeve: 应该是char*的型态 04/16 04:15
8F:→ Dinowchang: 如果是在 windows 下的话,换行符号是两个字元 04/16 07:56
9F:推 qscgy4: 回楼上windows不一定是\n\r,有时候只有\n 04/16 08:50
※ 编辑: Billeve (110.50.185.43 台湾), 04/16/2020 09:09:11
10F:推 justhit666: 可以贴一下完整的code,yytext宣告成什麽还有for的条 04/24 14:27
11F:→ justhit666: 件,如果yytext宣告成char *的话第一种写法应该是没问 04/24 14:27
12F:→ justhit666: 题的 04/24 14:27
13F:→ justhit666: 而且也不知道你用甚麽编译器下了甚麽编译指令XD 04/24 14:28