目录
一、字符串处理函数
1、测量字符串的长度 strlen
2、字符串拷贝函数 strcpy/strncpy(拷贝前n个字符)
3、字符串追加函数strcat/strncat
4、字符串比较函数strcmp
5、字符查找函数strchr/strrchr
6、字符串查找strstr
7、字符串替换函数memset
8、字符串 切割 strtok
二、字符串转数值
1、函数实现
2、代码实现编辑
一、字符串处理函数
以str开头的函数 都是字符串操作函数 都是遇到'\0'结束操作
头文件:#include<string.h>
1、测量字符串的长度 strlen
用法:size_t strlen(const char *s);//const只读
s是需要测量字符串的首元素地址,'\0'不会被测量
举例:
char str[100]="hello world";
strlen(str) == 11;
2、字符串拷贝函数 strcpy/strncpy(拷贝前n个字符)
拷贝 src指向的字符串到dest指针指向的内存中,遇到'\0’结束并且拷贝,返回值为目的内存地址。
用法:char *strcpy(char *dest, const char *src);
char *strncpy(char *dest, const char *src, size_t n);
dest:目的空间地址
src:原字符串的首元素地址
举例:
3、字符串追加函数strcat/strncat
用法:char *strcat(char *dest, const char *src);
char *strncat(char *dest, const char *src, size_t n);
将src指向的字符串 追加到 dest指向的字符串尾部
举例:
4、字符串比较函数strcmp
用法:int strcmp(const char *s1, const char *s2);
int strncmp(const char *s1, const char *s2, size_t n);
逐一比较字符ASCII码值。
返回值:
>0 字符串s1 > 字符串s2
<0 字符串s1 < 字符串s2
==0 字符串s1 == 字符串s2
举例:
5、字符查找函数strchr/strrchr
用法:char *strchr(const char *s, int c);//从前往后查
char *strrchr(const char *s, int c);//从后往前查
strchr返回值为从前往后找 第一次出现字符c的地址,若没找到,则返回NULL
6、字符串查找strstr
用法:char *strstr(const char *haystack, const char *needle);
返回值:找到返回找到的地址 失败 返回NULL
7、字符串替换函数memset
用法:void *memset(void *str, int c, size_t n)
复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符。
该值返回一个指向存储区 str 的指针。
案例:将world替换为$$$$$
8、字符串 切割 strtok
用法:char *strtok(char *str, const char *delim);
第一次切割:str必须指向待切割的字符串的首元素地址 delim指向分割符”|“
后续切割:str传NULL delim指向分割符"|"
返回值: 成功:返回值子串的首元素地址
失败:返回NULL
切割方式1:
#include <stdio.h>
#include<string.h>
void test()
{
char str[] = "aaaa|bbbb|cccc|dddd";
int i = 0;
char *buf[30];//存放字串首元素地址
buf[i]=strtok(str, "|");//第一次存
while (buf[i] != NULL)
{
i++;
buf[i] = strtok(NULL, "|");//后续存
}
//遍历切割完后的字串
for (int j = 0; j < i; i++)
{
printf("%s\n", buf[i]);
}
}
切割方式2:
char str[] = "aaaa|bbbb|cccc|dddd";
int i = 0;
//buf[0] = str
char* buf[30] = {str};//存放子串首元素地址
//后续切
int i = 0;
while (1)
{
buf[i] = strtok(str[i], "|");
if (buf[i] == NULL)
break;
i++;
}
简化切割方式:
char str[] = "aaaa|bbbb|cccc|dddd";
//buf[0] = str
char* buf[30] = {str};//存放子串首元素地址
//后续切
int i = 0;
while ((buf[i] = strtok(buf[i], "|")) && (++i));
二、字符串转数值
1、函数实现
头文件:#include<stdlib.h>
atoi将数值字符串 转成 int类型
atol将数值字符串 转成 long类型
atof将数值字符串 转成 float类型文章来源:https://www.toymoban.com/news/detail-581288.html
文章来源地址https://www.toymoban.com/news/detail-581288.html
2、代码实现
到了这里,关于【C语言】深入精讲字符串处理函数使用与优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!