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 ...
随机推荐
- c++的if语句中的110为什么不等于110?
从上图可以看出,当表达式1.1*x被直接放进if的判断括号中时1.1*x不等于y,但是将1.1*x赋值给z时,z与y相等,这是为什么?(以下为不等价时的代码) #include<stdio.h& ...
- LeetCode(171) Excel Sheet Column Number
题目 Related to question Excel Sheet Column Title Given a column title as appear in an Excel sheet, re ...
- 【HDU 6153】A Secret (KMP)
Problem Description Today is the birthday of SF,so VS gives two strings S1,S2 to SF as a present,whi ...
- 如何查看Laravel版本号的三种方法
1.PHP artisan --version 2.vim vendor/laravel/framework/src/Illuminate/Foundation/Application.php 3:可 ...
- Cannot delete or update a parent row: a foreign key constraint fails....
在操作”小弟“这张表时候报错 想在“小弟”上面加入数据或者更新数据,就要听老大的, 这句话后面跟着的表就是“老大”,必须老大有数据索引,“小弟“才可以加入或者更新 查看“小弟”表的外键,会发现有对“老 ...
- luogu3563 逛公园
两遍 spfa 然后建立分层图拓扑排序 dp 一下. 写得很差劲.效率很低. 时间复杂度 \(\mathrm{O}(Tnk)\). 参见这里秒懂. #include <iostream> ...
- cf842d Vitya and Strange Lesson
#include <iostream> #include <cstdio> using namespace std; int s[2000005][2], cnt, n, m, ...
- loadrunner使用随机值
用户登录设置:系统用1000000001.1000000002等可以登录系统,这个代表登录的用户名
- python022 Python3 面向对象
Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...
- Excel数据导入Sql Server出现Null(转)
Excel文件: 序号 姓名 内部电话 住址 1 小李 1234 …… 2 小王 5678 …… 3 小张 2345(国内长途) …… …… …… …… …… 如上结构的Excel文件,用SQL Se ...