C语言(九):字符串
来源:互联网 发布:知乎他是谁 编辑:程序博客网 时间:2024/06/08 18:21
在C语言中没有字符串,只有字符数组,所以字符数组相当于字符串,字符数组是以\0结尾的。
scanf输入字符串,存在缓冲区溢出
char s[10] = { 0 };scanf("%s", s);/*"%s"的作用就是输入一个字符串的,scanf是以回车键作为输入完成标示的,但回车键本身并不会作为字符串的一部分如果scanf参数中的数组长度小于用户在键盘输入的长度,那么scanf就会缓冲区溢出,导致程序崩溃*/int i;for (i = 0; i < 10; i++){ printf("%d\n", s[i]);}printf("----------------------------------\n");printf("%s\n", s);
gets:输入字符串,存在缓冲区溢出
char s[100] = { 0 };gets(s);/*gets认为回车的输入结束标示,空格不是输入结束标示,所以用gets这个函数就可以实现输入带空格的字符串 gets和scanf一样存在缓冲区溢出的问题 Gets不能用类似“%s”或者“%d”之类的字符转义,只能接受字符串的输入*/int i;for (i = 0; i < 10; i++){ printf("%d\n", s[i]);}printf("----------------------------------\n");printf("%s\n", s);
fgets:输入字符串,不存在缓冲区溢出
/*gets函数不检查预留缓冲区是否能够容纳用户实际输入的数据。多出来的字符会导致内存溢出,fgets函数改进了这个问题。由于fgets函数是为读取文件设计的,所以读取键盘时没有gets那么方便*/char s[100] = { 0 };fgets(s, sizeof(s), stdin);
puts:打印字符串
/*puts函数打印字符串,与printf不同,puts会在最后自动添加一个’\n’*/char s[] = "hello world";puts(s);
fputs:puts的文件操作版本
char s[] = "hello world";fputs(s, stdout);
strlen:字符串长度
size_t strlen(const char * _Str);
返回不包含字符串结尾’\0’的字符串长度
char s[100] = "hello world";int len = strlen(s);//得到字符串长度,返回一个字符串中有效字符的数量(不包含字符串结尾的0)printf("len = %d\n", len);
strcat:字符串追加
size_t strcat(char * _Str1, const char * _Str2);
将参数_Str2追加到_Str1后尾
char s[1024] = "hello world";int len = strlen(s);//得到字符串长度,返回一个字符串中有效字符的数量(不包含字符串结尾的0)printf("len = %d\n", len);char s1[100] = "abc123456789";strcat(s, s1);//将两个字符串合并,结果放入第一个参数里面,strcat也存在缓冲区溢出的问题printf("%s\n", s);
strncat:字符串有限追加
size_t strncat(char * _Str1, const char * _Str2, size_t len);
strcmp,字符串比较,可用于字符串排序
若str1==str2,则返回零;
若str1>str2,则返回正数;
若str1
char buf[] = "abc@defg@igk";char *p = strtok(buf, "@");while (p){ printf("%s\n", p); p = strtok(NULL, "@");}
atoi转化为int,atof转化为float,atol转化为long
需要包含头文件stdlib.h
阅读全文
0 0
- C语言(九):字符串
- C语言字符串函数(九)
- 零基础学C语言 笔记九 字符串
- C语言库函数(九)
- [C语言学习]作业九
- c语言学习笔记九
- C语言学习笔记<九>
- C语言九阳神功
- C语言内存分配(九)
- C语言记录之九
- C语言格式化字符串
- C语言字符串函数
- C语言字符串函数
- 字符串操作--c语言
- C语言字符串操作
- 关于c语言字符串
- C语言字符串函数
- C语言字符串函数
- Cloudsim3.0.3导入Eclipse各种错误解决方案
- mysql集群搭建教程-mysql+windows篇
- netty 推送服务参考链接
- Mysql数据库几种搜索引擎
- 三、设计模式之二----Builder模式
- C语言(九):字符串
- 无根树任意根深度
- ATcoder Grander Contest 17C Snuke and Spells 附题意
- Makefile中的wildcard用法
- jQuery中.bind() .live() .delegate() .on()区别
- 关于单选框、下拉框、复选框的数据回显问题以及全选和全不选
- 海盗分金
- php截取字符串最后一位
- 欢迎使用CSDN-markdown编辑器