第九章:字符串、字符和字节
来源:互联网 发布:大数据对学生的影响 编辑:程序博客网 时间:2024/06/11 16:26
日常使用我们都知道:利用字符数组或者指向字符的指针去存储字符串。这里把一些使用的注意事项罗列出来以便以后回顾
1、首先strlen函数返回的是一个size_t类型的值,是无符号数,所以如果比较大小
strlen(x)>=strlen(y)是可以的,但是strlen(x)-strlen(y)>=0,这基本上都是成立的,无符号数相减永远大于等于0。所以不能对strlen做这样的比较
比如strlen(x)>=10可以,strlen(x)-10>=0这非常没有意义 一样的道理。
2、strcpy函数
原型 char* strcpy(char* dst,char const* src);
如果参数dst与src重叠,结果是未定义的。如果dst长于src赋值完以后加上\0表示终止。如果小于,那么就会赋值到这个数组大小之外,占用后面的内存空间。所以要对目标数组的长度进行判断。
strcat也是一样,把字符串连接,加到dst后面,要求可以容纳所有字符串。
字符串比较strcmp(s1,s2)有返回值,如果s1<s2返回负数,相等返回0,大于返回正数。
strncpy,strcat,strncmp均是能限制长度的函数
原型:char* strncpy(char* dst,char const* src,size_t len);
第三个参数就表示长度,就是向dst写入len个字符,如果src长度小于len,赋值完以后,dst后面补\0到len长度,如果大于len,则赋值len个,结果不会以null结尾。
strncat是最多从src复制len个字符到目标数组后面,最后加一个null,不管空间够不够。
strncmp就是比较前len个字符。
3、字符串查找函数
char* strchr(char const* str,int ch);第一次出现ch的地方
strrchr,最后一次
strpbrk则是查找多个字符某一个第一次出现在str中的位置。
查找子串使用strstr.
4、查找标记
char* strtok(char* str,char const* sep);
在这个函数执行时会修改所处理的字符串,如果不能修改,拷贝一份然后把拷贝的传递给strtok
sep表示要查找的标记
使用如下:
#include <stdio.h>#include <string.h>voidprint_tokens( char *line ){staticcharwhitespace[] = " \t\f\r\v\n";char*token;for( token = strtok( line, whitespace ); token != NULL; token = strtok( NULL, whitespace ) )printf( "Next token is %s\n", token );}第一次调用时用字符串,之后用NULL一直取。
5、字符分类
字符分类时使用#include <ctype.h>库,可以保证可移植性。
6、内存操作
第三个参数均是要处理的字节数,和strn带头的不同,遇到NULL事不会停止的。
memmove和memcpy差不多,不过它的源和目标操作数可以重叠。
- 第九章:字符串、字符和字节
- 第九章 字符串、字符和字节[C和指针]
- 《C和指针》第九章 字符串、字符和字节
- 第九章——字符串、字符和字节
- 字符串,字符和字节
- 字符串,字符和字节
- 【C】【笔记】《C和指针》 第六章 指针 第七章 函数 第八章 数组 第九章 字符串、字符和字节
- C和指针 第九章 字符串和字节
- C#中的流、字节、字符和字符串
- 【c基础】字符串、字符和字节
- C#中的流、字节、字符和字符串
- c和指针 -- 字符串、字符、字节
- 字符,字节,字符串
- Java 字节 字符 字符串
- Java 字节 字符 字符串
- 字符串、字符、字节
- java 字节,字符,字符串
- 字符串、字符、字节
- 字符编码ASCII、Unicode、UTF-8的比较
- RTC实时时钟
- LruCache的用法及分析
- 常用链接记录
- java虚拟机之gc
- 第九章:字符串、字符和字节
- 'utf8' codec can't decode byte 0xd0 in position 0:unexpected end byte
- Java中Json字符串直接转换为对象(包括多层List集合 嵌套)
- GPS坐标转换(JS)
- Android中GreenDao的简单使用
- 笔记1
- 淘宝小爬虫(默写)
- centos无法查看ip
- 亲爱的Eclipse啊~