/*
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. git命令使用(二)

    上次写的git命令,基本上能够支持一个项目的基本运行了,但是git不是就那几个命令还有一些其他的命令,来看一下 创建一个文件夹,想在这个文件夹下创建项目,就执行这个命令就行 $ git init 里面 ...

  2. 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= ...

  3. SONP 是什么

    JSONP 是什么 说实话,我学了这么久,其实也没有好好了解这个东西,当然平常自己在前端方面也涉猎较浅. 1) jsonp 是什么 JSONP(JSON with Padding)是JSON的一种&q ...

  4. Uncaught ReferenceError: 板栗 is not defined at HTMLButtonElement.onclick (view:1)

    对JS传值一直以为都是随便传过去就行,直到今天遇到了中文传值的问题 中文传值不能够需要在调用的位置加 对于要传的值加单引号或者双引号 比如说下面这个样子,我这里还还记反斜杠注释 '<button ...

  5. c++ 高精度 加减乘除 四则运算 代码实现

    很久以前写的啦 记得写了好久好久一直卡在特例的数据上面 想起都心塞 那时候变量和数组的取名对我来说简直是个大难题啊 完全乱来 abcdef就一路排下来 自己看的时候都搞不懂分别代表什么 好在后来英语学 ...

  6. SQL练习题笔记

    查找最晚入职员工的所有信息 select * from employees order by hire_date desc limit 1 查找入职员工时间排名倒数第三的员工所有信息 select * ...

  7. Poj 2337 Catenyms(有向图DFS求欧拉通路)

    题意: 给定n个单词, 问是否存在一条欧拉通路(如acm,matal,lack), 如果存在, 输出字典序最小的一条. 分析: 这题可以看作http://www.cnblogs.com/Jadon97 ...

  8. static静态方法的优缺点

    static可以修饰成员变量,成员方法,代码块,类特点: static修饰的方法和变量,为类所属方法和变量,不会在对象销毁时销毁,所以生命周期较长.被static修饰的内容会随着类的加载而加载,优先于 ...

  9. python mock模块使用(一)

    什么是mock unittest.mock是一个用于在Python中进行单元测试的库,Mock翻译过来就是模拟的意思,顾名思义这个库的主要功能是模拟一些东西. 它的主要功能是使用mock对象替代掉指定 ...

  10. zoj 2829 Beautiful Number

    Beautiful Number Time Limit: 2 Seconds      Memory Limit: 65536 KB Mike is very lucky, as he has two ...