C++ TwoDay

C++ TwoDay

最近同事离职东西都交接在我这,有些忙。外加c++真的学着容易自闭…总之借口总是有很多。。。
言归正传,这次分享一下 最近的知识 以及记录一下 最近的收获

C初识字符串

最近看到了字符串这块。
首先,想要在c语言中使用字符串,需要引用 string.h 这个头文件。在c语言中字符串是以 \0 结尾的,写代码的时候可以不去加 但编译器在编译过程中会处理,此时字符串的指针里面是包含一个 \0 的,例如:char str[]=“abc” 实际上这个str中是存在四个存储区。
字符串在编译的时候会替换成第一个字符所在的存储区地址。例如:char str[]=“abc” 其中‘a’所在的地址就能代表这个字符串。

字符串的一些用法

关于字符串的一些用法我这边就不多赘述了,毕竟网上单搜字符串用法会出现很多很全面的汇总文章。在这里我就说些小白可能遇到的一些小坑。
通常我们用scanf读取输入的时候,当输入空格或者回车的时候就会被认为结束输入,但是有些时候我们的需求就是输入一些空格,因此现在有一个函数叫 gets();能获取键盘输入数据,可以读取空格与回车。但是,这个gets()方法存在很大的缺陷。这个缺陷就是因为没有限制,所以很容易造成堆栈溢出。不过还有一个更加安全的函数 fgets()可以用来读取输入,因为使用fgets()这个函数的时候有一个参数是预留的空间大小,如果输入的字符串小于预留的长度,他会自动把 \n 加入字符串内。
其次,如果真的使用scanf()来输入字符串,那么需要注意清除缓冲区多余的数据 配合 scanf("%*[^\n]")和 scanf("%*c")清除缓冲区数据,但是如果缓冲区不存在多余数据,那么会强制你输入多余的数据然后才会进行下一步,对此的解决方法便是加一步判断,判断有效字符的个数并且判断最后一个有效字符不是\n字符 之后选择是否执行缓冲区清除的语句。

题外话

最近在练习自己搭建后端服务器 真的是一步一个坑 就一个防火墙问题 困扰了我三天 起初并不知道是防火墙未关闭导致 经过各种方法的尝试才瞎猫碰死耗子解决了这个问题,通过这个问题我发现,凡事都要自己去动手才会真正的踩到那些坑,只看会是没用的。还有。。。有人带是真爽,没人带真的是太难了。不过现在大多数都是自己扛的勇士,比如我。。。总之,与君共勉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值