/*
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语言 字符串操作 笔记的更多相关文章

  1. C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作  strcpy(p, p1) 复制字符串  strncpy(p, p1, n) 复制指定长度字符串  strcat( ...

  2. C语言字符串操作常用库函数

    C语言字符串操作常用库函数 *********************************************************************************** 函数 ...

  3. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  4. 转:C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    转自:C语言字符串操作函数 - strcpy.strcmp.strcat.反转.回文 C++常用库函数atoi,itoa,strcpy,strcmp的实现 作者:jcsu C语言字符串操作函数 1. ...

  5. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    原文:http://www.cnblogs.com/JCSU/articles/1305401.html C语言字符串操作函数 1. 字符串反转 - strRev2. 字符串复制 - strcpy3. ...

  6. 零基础学习C语言字符串操作总结大全

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...

  7. C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

  8. 6. Go语言—字符串操作

    一.字符串支持的转义字符 \r 回车符(返回行首) \n 换行符(直接跳到下一行的同列位置) \t 制表符 \' 单引号 \" 双引号 \\ 反斜杠 \uXXXX Unicode字符码值转义 ...

  9. C语言字符串操作总结大全

    1)字符串操作 strcpy(p, p1)  复制字符串  函数原型strncpy(p, p1, n)   复制指定长度字符串  函数原型strcat(p, p1)   附加字符串  函数原型strn ...

随机推荐

  1. Elasticsearch document深度剖析

    1. 针对Elasticsearch并发冲突问题,ES内部是如何解决的? 1)ES内部是线程异步并发修改的,是基于_version版本号进行乐观锁并发控制的: 2)若后修改的先到了,那么修改后版本发生 ...

  2. 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H)

    目录 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛链接 竞赛题目 总结 北京化工大学2018年10月程序设计竞赛部分题解(A,C,E,H) 竞赛事件相关 竞赛 ...

  3. [CF] 402 E. Strictly Positive Matrix

    一个矩阵,自乘无限次后能否全为正数? 如果n比较小,可以二分一下,但是这里n很大,乘一次都无法接受 可以考虑实际含义:矩阵看成邻接矩阵,那么0就是没有边,其余就是有边. 我们知道邻接矩阵自乘k次就相当 ...

  4. LeetCode(52) N-Queens II

    题目 Follow up for N-Queens problem. Now, instead outputting board configurations, return the total nu ...

  5. ()-servlet.xml中剥离出的hibernate.cfg.xml

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. jenkins在linux环境搭建-公司系统

    1.按照这个搭建的项目https://www.cnblogs.com/zishengY/p/7170656.html 2.配置权限https://blog.csdn.net/mynameissls/a ...

  7. 6572平台上关于wifi热点切换跳的坑

    最近在做一个无屏的项目,需要开启设备的wifi热点,通过连接热点设置设备wifi,本来看起来很容易完成的一件事情,遇到了一下的坑 在wifi切换状态时,大概率出现不能切换的问题,比如从wifi状态切换 ...

  8. 【2018 Multi-University Training Contest 4】

    01: 02:https://www.cnblogs.com/myx12345/p/9407551.html 03: 04:https://www.cnblogs.com/myx12345/p/940 ...

  9. 简述WEB项目前端脚本的一次重构历程,labJs,requireJs实践[转载]

    重构前的状态:    大量的js代码混在繁多的Jsp文件中,对第三方的js库依赖也很杂乱.虽然在部分交互性较强的页面中,将js代码分离到了独立的js文件中,但是代码结构及依赖管理依然很乱.不说新人来了 ...

  10. 51 Nod 1244 莫比乌斯函数前n项和

    积性函数前n项和必看好文 https://blog.csdn.net/skywalkert/article/details/50500009 递归计算的时候要用map记忆化一下,前面的打表会比较快一点 ...