主页链接: LSR的主页
专栏链接: 《C语言》
文章目录
一、字符分类函数

这些函数使用方法类似,参数为ture就返回一个不为0的数,为false就返回0。
需要注意的是这些函数的头文件:ctype.h
我们借助字符转换函数来实现小写大写的相互转换
int tolower(int c);//将参数穿进去的大写字母转为小写
int toupper(int c);//将参数穿进去的小写字母转为大写
代码实现:
#include<stdio.h>
#include<ctype.h>
int main()
{
int i = 0;
char str[] = "It is a test.\n";
char c;
while(str[i])
{
c = str[i];
if(islower(c))
c = toupper(c);//小写转大写
i++;
}
return 0;
}
二、strlen基本用法
基本类型:
size_t strlen (const char* str)
功能:
计算字符串的长度,字符串以'\0'结尾, strlen函数返回的是子啊字符串中'\0'之前出现的字符个数(不包含'\0')
注意点:
1. 该函数的返回类型是无符号整型,所以计算两个字符串长度之后通过相减进行比较的表达式,得到的返回值只会是正数,不可能为负(将负数的符号位转化为很大的有效位)详见下面示例代码。
2. 需包含头文件string.h
示例代码:
#include <stdio.h>
#include <string.h>
int main()
{
const char* str1 = "abcdef";
const char* str2 = "bbb";
if(strlen(str2)-strlen(str1)>0)
{
printf("str2>str1\n");
}
else
{
printf("srt1>str2\n");
}
return 0;
}
这里最后返回str2>str1。
三、strcpy基本用法
基本类型:
char* strcpy(char* destination, const char* source)
功能:
将字符串拷贝到目标字符串
注意点:
1. 源字符串必须以'\0'结尾。
2. 会将源字符串的'\0'拷贝到目标空间。
3. 目标空间必须足够大,以确保可以存放源字符串。
4. 目标空间必须可以修改(不用const的原因)。
四、strcat基本用法
基本类型:
char* strcat(char* destination, const char* source)
功能:
从目标空间结尾的'\0'处追加字符串
注意点:
1. 源字符串必须以'\0'结尾
2. 目标字符串中也必须有'\0',否则没办法知道追加从哪里开始。
3. 目标空间必须足够大。
4. 目标空间必须可修改(不用const的原因)。
五、strcmp基本用法
基本类型:
int strcmp(cosnt char* str1, const char* str2)
功能:
两个字符串以ASCII码的方式进行比较(不是比谁长)
注意点:
第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字
第⼀个字符串等于第⼆个字符串,则返回0
第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字
六、strncpy基本用法
基本类型:
char* strncpy(char* destination, const char* source, size_t num)
功能:
从源字符串中拷贝num个字符到目标空间
注意点:
1.你要的不够不会补\0
2. 如果源字符串的长度小于num,那么拷贝完源字符串后,继续追加\0,直到num个。
七、strncat基本用法
基本类型:
char* strncat(char* destination, const char* source, size_t num)
功能:
从源字符串追加num个字符到目标空间
注意点:
1. 你要的不够也会给你补\0
2. 当源字符串的长度小于num时,只会将源字符串到\0的内容追加到目标空间。
八、strncmp基本用法
基本类型:
int strcmp(cosnt char* str1, const char* str2,size_t num)
功能:
比较str1和str2前num个字符,即最多比较num个字符
九、strstr基本用法
基本类型:
int strstr( cosnt char* str1, const char* str2)
功能:
函数返回str2在字符串str1中第一次出现的位置。
注意点:
字符串的比较不包括\0字符,以\0作为结束标志。
//简单实现
#include<stdio.h>
#include<string.h>
int main()
{
char str[] = "This is a simple string";
char* pch;
pch = strstr (str, "simple");
strncpy(pch, "sample", 6);
printf("%s\n", str);
reutnr 0;
}
十、strtok基本用法
基本类型:
char* strtok(char* str, const char* sep);
功能:
找到指定标记,将该标记改为\0之后,返回一个指向这个标记的指针。
注意点:
1. strtok函数第一个参数不为NULL,函数将找到str中的第一个标记,strtok函数将保存他在字符串的位置。
2. strtok函数的第一个参数为NULL时,函数将在同一个字符串中被保存的位置开始(刚刚被改成\0的位置),查找下一个标记。(二次调用时)
3. 如果字符串中不存在更多的标记,则返回NULL指针。
十一、strerror基本用法
基本类型:
char* strerror(int errnum)
功能:
strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。
注意点:
1. 头文件:errno.h
C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码,只不过程序启动
的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会讲对应
的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是
有对应的错误信息的。strerror函数就可以将错误对应的错误信息字符串的地址返回。
#include<erro.h>
#include<string.h>
#include<stdio.h>
int main()
{
int i = 0;
for(i = 0;i<+10;i++)
{
printf("%s\n", strerror(i));
}
return 0;
}
结果如下:
No error
Operation not permitted
No such file or directory
No such process
Interrupted function call
Input/output error
No such device or address
Arg list too long
Exec format error
Bad file descriptor
No child processes
补充一下perror:
基本类型:
void perror(cosnt char* str)
功能:
perror = printf + strerror,打印完参数部分之后自动加一个冒号和空格,再打印错误信息。
1万+

被折叠的 条评论
为什么被折叠?



