C语言 字符串操作 笔记
/*
C语言字符串的操作笔记
使用代码和注释结合方式记录
*/ # include <stdio.h>
# include <string.h> int main(void)
{
// 不受限制的字符串函数 char * ch1 = "Hello World!"; // 此处有警告
char ch2[] = "Hello World!";
// 计算字符串长度函数 strlen()
int i, j;
i = strlen(ch1);
j = strlen(ch2);
printf("第一个字符串的长度为:%d\n", i);
printf("第二个字符数组的长度为:%d\n", j);
/*
输出结果:
第一个字符串的长度为:12
第二个字符数组的长度为:12
注意:
strlen() 的返回值为无符号数
*/ // 复制字符串函数 strcpy()
char ch3[] = "LinLin";
puts(ch3);
strcpy(ch3, ch1);
puts(ch3);
/*
输出结果:
LinLin
Hello World!
注意:
新字符串以 NUL 字节结尾,且要保证ch3 的长度足够容纳 ch1, 否则
会覆盖ch3 数组后面的内存,因为 strcpy 无法判断是否有足够长度
strcpy() 的返回值为它的第一个参数的一份拷贝
*/ // 连接字符串函数 strcat()
char ch4[] = "Hello!";
char ch5[] = "LinLin";
puts(ch4);
puts(ch5);
strcat(ch4, ch5);
puts(ch4);
/*
输出结果:
Hello!
LinLin
Hello!LinLin
注意:
ch4 要有足够空间容纳连接后的新字符串
strcat() 的返回值为它的第一个参数的一份拷贝
*/ // 字符串比较函数 strcmp()
char ch6[] = "LinLin";
char ch7[] = "LinLin";
puts(ch6);
puts(ch7);
if ( == strcmp(ch6, ch7))
printf("这两个字符串相同!\n");
/*
输出结果:
LinLin
LinLin
这两个字符串相同!
注意:
如果ch6 小于 ch7 则返回一个小于 0 的值
反之返回一个大于 0 的值
相等返回 0
如果前面一个字符串为后面一个字符串的前面的一部分,也会被认为小于
后面的字符串,这种比较称为“词典比较”
*/ /*
长度受限的字符串函数
strncpy(char * s1, char * s2, int len);
strncat(char * s1, char * s2, int len);
strncmp (char * s1, char * s2, int len);
这些函数的复制,连接,查找功能和上面所说的函数相同,但却受函数的三个
参数,即长度限制 */ // 字符串查找基础
/*
查找一个字符
char * strchr(char const * str, char ch);
该函数会在字符串str中查找ch字符,如果没找到返回NULL指针,反之返回ch第
一次出现的位置
char * strrchr(char const * str, char ch);
与strchr()函数类似,但其返回值为ch字符最后一次出现的位置 查找任何几个字符
char * strpbrk(char const * str, char const * group);
这个函数返回一个指向str中第一个匹配group中任何一个字符的位置,如果都不
匹配,返回一个NULL指针 查找一个子串
char * strstr(char const * s1, char const * s2);
这个函数在s1中查找s2第一次出现的起始位置,并返回一个指向该位置的指针,
如果s2并没有完整的出现在s1的任何一个位置,则返回一个NULL指针
*/ // 高级字符串查找
/*
查找一个字符串前缀
size_t strspn(char const * str, char const * group);
用于在字符串的起始位置对字符计数,返回字符串起始部分含有group中字符的数目
size_t strcspn(char const * str, char const * group);
遇上一个函数相反,返回字符串起始部分不含有group中字符的数目
*/
int len1, len2;
char ch8[] = "25,142,dfaifn,s23";
len1 = strspn(ch8, "");
len2 = strcspn(ch8, "");
printf("len1 = %d, len2 = %d\n", len1, len2);
// 输出结果: len1 = 1, len2 = 0 // 查找标记
/*
一个字符串常包含几个单独的部分,他们彼此分隔开,每次为了处理这些部分,首先
需要将它们从字符串中抽取出来
char * strtok(char * str, char * const sep);
sep 参数是一个字符串,定义了用作分隔符的字符集,第一个参数是一个字符串,它
包含了sep中的字符,strtok找到str的下一个标记,并将其用NUL结尾,然后返回一个
指向这个标记的指针。
注意:此函数会修改原字符串,如果原字符串是不可修改的,就将其复制一份拷贝传
给strtok
*/ /*
字符转换
将大写字母转换成小写字母
char tolower(char ch);
将小写字母转换成大写字母
char toupper(char ch);
*/ return ;
}
C语言 字符串操作 笔记的更多相关文章
- C语言字符串操作总结大全(超详细)
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat( ...
- C语言字符串操作常用库函数
C语言字符串操作常用库函数 *********************************************************************************** 函数 ...
- c语言字符串操作大全
C语言字符串操作函数 函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #incl ...
- 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...
- C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文
原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...
- 零基础学习C语言字符串操作总结大全
本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...
- C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
- 6. Go语言—字符串操作
一.字符串支持的转义字符 \r 回车符(返回行首) \n 换行符(直接跳到下一行的同列位置) \t 制表符 \' 单引号 \" 双引号 \\ 反斜杠 \uXXXX Unicode字符码值转义 ...
- C语言字符串操作总结大全
1)字符串操作 strcpy(p, p1) 复制字符串 函数原型strncpy(p, p1, n) 复制指定长度字符串 函数原型strcat(p, p1) 附加字符串 函数原型strn ...
随机推荐
- git命令使用(二)
上次写的git命令,基本上能够支持一个项目的基本运行了,但是git不是就那几个命令还有一些其他的命令,来看一下 创建一个文件夹,想在这个文件夹下创建项目,就执行这个命令就行 $ git init 里面 ...
- linux tomcat启动报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
解决方法: 1.先找出java安装路径 $ which java /data/apps/java/jdk1.8.0_91/bin/java 2.在catalina.sh中加入配置 JAVA_HOME= ...
- SONP 是什么
JSONP 是什么 说实话,我学了这么久,其实也没有好好了解这个东西,当然平常自己在前端方面也涉猎较浅. 1) jsonp 是什么 JSONP(JSON with Padding)是JSON的一种&q ...
- Uncaught ReferenceError: 板栗 is not defined at HTMLButtonElement.onclick (view:1)
对JS传值一直以为都是随便传过去就行,直到今天遇到了中文传值的问题 中文传值不能够需要在调用的位置加 对于要传的值加单引号或者双引号 比如说下面这个样子,我这里还还记反斜杠注释 '<button ...
- c++ 高精度 加减乘除 四则运算 代码实现
很久以前写的啦 记得写了好久好久一直卡在特例的数据上面 想起都心塞 那时候变量和数组的取名对我来说简直是个大难题啊 完全乱来 abcdef就一路排下来 自己看的时候都搞不懂分别代表什么 好在后来英语学 ...
- SQL练习题笔记
查找最晚入职员工的所有信息 select * from employees order by hire_date desc limit 1 查找入职员工时间排名倒数第三的员工所有信息 select * ...
- Poj 2337 Catenyms(有向图DFS求欧拉通路)
题意: 给定n个单词, 问是否存在一条欧拉通路(如acm,matal,lack), 如果存在, 输出字典序最小的一条. 分析: 这题可以看作http://www.cnblogs.com/Jadon97 ...
- static静态方法的优缺点
static可以修饰成员变量,成员方法,代码块,类特点: static修饰的方法和变量,为类所属方法和变量,不会在对象销毁时销毁,所以生命周期较长.被static修饰的内容会随着类的加载而加载,优先于 ...
- python mock模块使用(一)
什么是mock unittest.mock是一个用于在Python中进行单元测试的库,Mock翻译过来就是模拟的意思,顾名思义这个库的主要功能是模拟一些东西. 它的主要功能是使用mock对象替代掉指定 ...
- zoj 2829 Beautiful Number
Beautiful Number Time Limit: 2 Seconds Memory Limit: 65536 KB Mike is very lucky, as he has two ...