为什么在linux中运行出错?gets??

为什么在linux中运行出错?gets??,第1张

我也帮你编译过了,我把你的文件稍改了一下,我把你的主函数改成了 int main() ,而主函数的最后加上了一句“return 0”经过编译之后我没有发现错误,但是发现了两处警告,如下:test.c:17: warning: suggest parentheses around assignment used as truth value

/tmp/ccIa0NFr.o: In function `main': test.c:(.text+0x96): warning: the `gets' function is dangerous and should not be used. 上面的意思是说,1、建议你在文件的第17行的括号内用一个真值;2、gets()函数不能被使用,并且存在一定的风险。(以上是个人的翻译,不知道有没有错)。但是我运行了,不知道结果是不是你想要的:字符1:1 字符2:2 字符3:3 运行结果是:

大写字母数:0

小写字母数:0数 字 数:3空 格 数:0其他字符数:0

当使用scanf语句,你打完回车以后。这个回车会作为一个字符读入到缓冲区中,当执行到gets语句时,就会自动读入这个换行符。相当于gets读入了一个'\n'。只要在scanf语句后加一句getchar()就行了

查找目录下的所有文件中是否含有某个字符串

find .|xargs grep -ri "IBM"

查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名

find .|xargs grep -ri "IBM" -l

推荐使用正则表达式

(1)正则表达式一般用来描述文本模式的特殊用法,由普通字符(例如字符a-z)以及特殊字符(称为元字符,如/、*、?等)组成。

(2)基本元字符集及其含义

^ :只匹配行首。 如^a 匹配以a开头的行abc,a2e,a12,aaa,......

$ :只匹配行尾。 如^a 匹配以a结尾的行bca,12a,aaa,.......

* :匹配0个或多个此单字符。 如(a)* 匹配 空,a,aa,aaa,....

[] :只匹配[]内字符。可以是一个单字符,也可以是字符序列,用","将里面要匹配的不同字符串分开。也可以使用-来表示[]内字符序列的范围,如[1-5]表示[12345]

\ :只用来屏蔽一个元字符的特殊含义。 如\*,\',\",\|,\+,\^,\. 等

.:(点)只匹配任意单字符。

pattern\{n\}:只用来匹配前面pattern出现的次数.n为次数。如a\{2\}匹配aa.

pattern\{n,\}:含义同上,但次数最少为n.如a\{2,\}匹配aa,aaa,aaaa,.....

pattern\{n,m\}:含义同上,但次数在n和m之间。如a\{2,4\}匹配aa,aaa,aaaa三个

(3)举例说明:

^$ :匹配空行

^.$ :匹配包含一个字符的行

\*\.pas :匹配以*.pas结尾的所有字符或文件

[0123456789]或[0-9] :假定要匹配任意一个数字

[a-z] :任意小写字母

[A-Za-z] :任意大小写字母

[S,s] :匹配大小写S

[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} :匹配IP地址 [0-9]\{3\}三个0-9组成的字符串;\. :匹配点(注意这里点是特殊的字符,所以要用"\"来屏蔽其含义)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7405415.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-05
下一篇2023-04-05

发表评论

登录后才能评论

评论列表(0条)

    保存