iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >一起来了解c语言的str函数
  • 372
分享到

一起来了解c语言的str函数

2024-04-02 19:04:59 372人浏览 八月长安
摘要

目录strlen:strcmp:strcpy:strcat:strstr:atoi:总结strlen: 用于求字符串长度,从首字符开始,到'\0'结束,'\0

strlen:

用于求字符串长度,从首字符开始,到'\0'结束,'\0'不计入总长度。

函数实现:

size_t my_strlen(const char* ptr)
{
	assert(ptr);
	const char* ptx = ptr;
	while (*(++ptx));
	return (size_t)(ptx - ptr);
}

strcmp:

用于比较两个字符串大小,注意大小并不是指字符串长度,而是从第一个字符开始比较,比较字符的大小。该函数返回的是一个int值,不同编译器,返回的值是不一样。但是正负是一致的,当第一个大于第二个,返回正值,小于则返回负值,相等返回0。

函数实现:

int my_strcmp(const char* str1,const char* str2)
{
	assert(str1 && str2);
	while((!(*str1 - *str2)) && ((*(str1++)) * (*(str2++))));
	return (int)(*str1 - *str2);
}

strcpy:

用于复制字符串。

函数实现:

char* my_strcpy(char* dest,const char* source)
{
	assert(dest && source);
	char* result = dest;
	while (*(dest++) = *(source++));
	return result;
}

strcat:

用于在目标字符串末尾追加一个字符串。

函数实现:

char* my_strcat(char* a, const char* b)
{
	assert(a && b);
	char* tmp = a;
	while (*(++a));
	while (*(a++) = *(b++));
	*a = '\0';
	return tmp;
}

strstr:

用于在一个字符串内寻找另一个字符串。这于KMP算法有关。

函数实现:

const char* my_strstr(const char* a, const char* b)//a为长字符串 b为短字符串
{
	char* cp = (char*)a;
	char* s1;
	char* s2;
	if (!*b)
		return a;
	while (*cp)
	{
		s1 = cp;
		s2 = (char*)b;
		while (*s1 && *s2 && !(*s1 - *s2))
		{
			s1++;
			s2++;
		}
		if (!*s2)
			return cp;
		cp++;
	}
	return NULL;
}

atoi:

这个函数很有意思,它会把字符串的数字串转化为int值。

函数实现:

int my_atoi(const char* str)
{
	assert(str);
	int num = 0;
	int result = 0;
	const char* tmp = str;
	while (*str && *str != '.')
	{
		num++;
		str++;
	}
	while (num--)
	{
		result += (*tmp - '0') * (int)pow(10, num);
		tmp++;
	}
	return result;
}

strncpystrncmpstrncat

三个函数都是限制了字符个数,功能是一样的。

函数实现:

char* my_strncpy(char* dest, const char* sou, size_t num)
{
	assert(dest && sou);
	char* tmp = dest;
	while ((num--) && (*(dest++) = *(sou++)));
	return tmp;
}
char* my_strncat(char* a, const char* b, int n) 
{
	assert(a && b);
	char* tmp = a;
	while (*(++a));
	while ((n--) && (*(a++) = *(b++)));
	*a = '\0';
	return tmp;
}
int my_strncmp(const char* str1, const char* str2,int n)
{
	assert(str1 && str2);
	while ((!(*str1 - *str2)) && ((*(str1++)) * (*(str2++))) && (n--));
	return (int)(*str1 - *str2);
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容! 

--结束END--

本文标题: 一起来了解c语言的str函数

本文链接: https://www.lsjlt.com/news/139107.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 一起来了解c语言的str函数
    目录strlen:strcmp:strcpy:strcat:strstr:atoi:总结strlen: 用于求字符串长度,从首字符开始,到'\0'结束,'\0...
    99+
    2024-04-02
  • 一起来学习C语言的字符串转换函数
    字符串转整数 字符串转换为整数的函数有两个,他们的函数原型如下: int __cdecl atoi(const char *_Str); long __cdecl atol(...
    99+
    2024-04-02
  • c语言的str函数怎么用
    这篇文章主要讲解了“c语言的str函数怎么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“c语言的str函数怎么用”吧!strlen:用于求字符串长度,从首字符开始,到'\0'...
    99+
    2023-06-29
  • c语言str函数怎么使用
    在C语言中,str函数是用于在一个字符串中查找子字符串的函数。str函数的原型如下:cchar* str(char* str1, c...
    99+
    2023-10-18
    c语言
  • 一起来了解一下C++中的指针
    目录1指针的基本概念2指针变量的定义和使用3指针所占内存空间4空指针和野指针5const修饰指针6指针和数组7指针和函数8指针、数组、函数总结1 指针的基本概念 作用:可以通过指针间...
    99+
    2024-04-02
  • 一起来了解一下C++的结构体 struct
    目录struct 结构体占用空间与类的区别访问控制权限主要用途c结构体实现虚函数的功能总结struct 结构体 占用空间 在C++ 中空结构体占1个字节 struct Temp{};...
    99+
    2024-04-02
  • C语言深入了解函数
    目录1. 函数的概念2. 函数的分类从定义角度分从参数角度分类从返回值角度分3. 函数的定义4. 函数的声明5. 函数的调用6. 递归函数1. 函数的概念 函数是c语言的功能单位,实...
    99+
    2024-04-02
  • 一起来了解mysql数据库
    目录一、数据库是什么?二、数据库的分类?三、数据库和数据结构的区别四、MySQL数据库的介绍4.1 MySQL数据库的组成4.2 MySQL服务器的介绍4.3 MySQL数据库的数据...
    99+
    2024-04-02
  • C语言的strcpy函数你了解吗
    目录strcpy函数原型参数讲解返回值详解函数详解第二个注意点:目标空间必须足够大,以确保能存放源字符串第三个注意点:目标空间必须可变总结strcpy 拷贝字符串到目标地址 函数原...
    99+
    2024-04-02
  • 一起来了解javascript数组的方法
    目录1、push2、pop3、unshift()4、shift()5、concat()6、reverse()7、sort()8、join()9、slice()10...
    99+
    2024-04-02
  • 一起来了解React的Hook
    目录StateHook声明多个state变量那么,什么是HookEffectHookHook使用规则自定义Hook其他Hook总结State Hook 这个例子用来显示一个计数器。当...
    99+
    2024-04-02
  • 一起来学习C语言的输入和输出
    目录一、scanf() 和 printf() 函数实例二、getchar() 和 putchar() 函数实例1实例2三、gets() 和 puts() 函数实例...
    99+
    2024-04-02
  • 一起来学习C++的函数指针和函数对象
    目录函数指针函数对象总结函数指针 以下是<cstdlib>库中的一个排序数组的方法qsort()的函数原型。 void qsort (void* base, size_t...
    99+
    2024-04-02
  • C语言的abs()函数和div()函数你了解吗
    C语言库中提供了许多函数,这样需要计算的时候,可以直接借助库函数,而不用自己重新编写函数。今天就来看一下C语言标准库函数里面的整型函数。 int __cdecl abs(int ...
    99+
    2024-04-02
  • 了解C语言go out 函数的功能
    了解C语言中的go out函数的功能,需要具体代码示例 在C语言中,没有名为go out的标准库函数。但是,我们可以编写一个简单的示例函数来模拟“go out”功能,比如一个函数用于打...
    99+
    2024-03-13
    函数 c语言 go out 标准库
  • 一篇文章带你了解C语言函数递归
    目录什么是递归?递归的两个必要条件递归实例实例1(按照顺序打印一个数的整形值)画图讲解 完整代码 实例2 (使用函数在不创建变量的情况下求字符串长度)画图讲解程序...
    99+
    2024-04-02
  • 一起来看看C语言的预处理注意点
    目录C 预处理器1.取消已定义宏2.使用#ifdef来调试常用预定义宏预处理器运算符 1.宏延续运算符2.字符串常量化运算符#3.标记粘贴运算符##参数化的宏总结C 预处理...
    99+
    2024-04-02
  • 一起来看看C语言世界中的结构体
    目录一、结构体的概念:二、结构体变量的定义和初始化结构体变量的定义(1)单独定义(2)混合定义(在定义结构体的同时定义结构体变量)结构体变量的初始化 三、结构体变量的使用(...
    99+
    2024-04-02
  • strncpy函数详解看这一篇就够了C语言
    strncpy函数是C语言中的字符串处理函数,用于将一个字符串复制到另一个字符串中,可以指定复制的长度。函数原型:```cchar*...
    99+
    2023-09-09
    C语言
  • 一起来了解python的运算符
    目录1、算数运算符2、比较运算符3、赋值运算符4、成员运算符实例5、身份运算符实例6、逻辑运算符实例逻辑短路逻辑优先级7、位运算符按位与按位或按位非按位异或右移左移8.运算符的优先级...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作