c语言学习---gets()读取字符串,以及\0,fgets()put()fputs()
#include<stdio.h> //gets()读取字符串, 可以读取空格 int main() { char num[2] = "";//gets 也会造成内存污染 , 设置字符串长度是2, 但是如果长度超过了2还是会打印, 所以这样就会造成内存污染 gets(num);// ()里面的参数要的是存放读取字符串的地址 printf("num is %s",num); return 0; }
#include<stdio.h> //fgets默认必须有三个参数,第一个是读取到哪里,第二个参数表示最多读多少, 第三个参数是从哪里读(默认就是stdin,即标准输入,也就是键盘的意思), int main() { char num[6] = ""; printf("size of is %d\n",sizeof(num)); fgets(num, sizeof(num),stdin); //fgets 是从stdin(标准输入==键盘)读取字符串, 到num数组中 , 最大可以读sizeof(num)-1个 printf("num is %s",num); return 0; }
fgets()会读到\n, 所以上面这里会有一个换行符号
如果让fgets()不要读到\n
#include<stdio.h> //如何找到最后一个字符的\n //’\0’是判定字符数组结束的标识,表示这串字符到结尾了; int main() { char number[] = "shun"; printf("sizeof number is %d\n",sizeof(number)); printf("stren number is %d\n",strlen(number)); //strlen 返回的是有效数组的个数, 不包括'\0' int i = 0; while (number[i] != '\0') { i++; } printf("the i value is %d",i); return 0; }
#include<stdio.h> #include<string.h> #include<stdlib.h> //字符串数组的输出 int main() { char buf[128] = "shun"; //输出方式1 puts(buf);//传参是首元素地址,其实就是数组名字 //输出方式2 fputs(buf,stdout);//往标准输出文件输出, 其实就是终端,第一个参数是数组首元素, 第二个参数是输出的地方, 标准输出 return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧