/*
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. luogu P1238 走迷宫--DFS模板好(水)题

    题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束点都是用两个数据来描述的,分别表示 ...

  2. mysql EXPLAIN Join Types 手册解释 及数据实操

     第一部分:名称解释 文档地址 https://dev.mysql.com/doc/refman/5.7/en/explain-output.html EXPLAIN Join Types: The ...

  3. (二十)python 3 匿名函数

    匿名函数lambda Python使用lambda关键字创造匿名函数.所谓匿名,意即不再使用def语句这样标准的形式定义一个函数.这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配.其语法是: ...

  4. Linux 下Python2.7解决list打印中文字符问题

    在写一个爬取智联招聘数据的爬虫中,将所需内容匹配到后打印出现了utf-8字符,并没有出现中文字符. 例如: >>>listnine = ['梨', '橘子', '苹果', '香蕉'] ...

  5. Charm Bracelet(01背包)

    Bessie has gone to the mall's jewelry store and spies a charm bracelet. Of course, she'd like to fil ...

  6. 【Java 理论篇 1】Java2平台的三个版本介绍

    导读:关于java的三种分类J2SE.J2EE.J2ME,在网上有很多资料,然后自己写的,也大多是从各个网站上搜罗里的.算是自己的一种笔记,或者明白的说,就是把别人的东西抄一遍.但是,这对于我来说,也 ...

  7. 约分差束 例题 ZOJ 2770 火烧连营

    题目来源:ZOJ Monthly, October 2006, ZOJ2770题目描述:大家都知道,三国时期,蜀国刘备被吴国大都督陆逊打败了.刘备失败的原因是刘备的错误决策.他把军队分成几十个大营,每 ...

  8. 前端的指导方针---css篇

    英语是渣渣,想学英语,又不想花钱报培训班.看不懂的文章,还是翻译一下留着自己看吧. 引自   :  https://github.com/bendc/frontend-guidelines HTML ...

  9. Codeforces Round #297 (Div. 2) D. Arthur and Walls [ 思维 + bfs ]

    传送门 D. Arthur and Walls time limit per test 2 seconds memory limit per test 512 megabytes input stan ...

  10. msp430项目编程06

    msp430中项目---设计扫描键盘 1.扫描键盘工作原理 2.电路原理说明 3.代码(显示部分) 4.代码(键盘驱动) 5.项目总结 msp430项目编程 msp430入门学习