首页 > 其他分享 >字符串函数

字符串函数

时间:2024-03-20 19:32:28浏览次数:13  
标签:return 函数 ++ char int 字符串 my

这些字符串函数一定加头文件

#include <string.h>

strlen函数:

1.它的功能:

计算字符串的长度

 

2.strlen的实现:

int my_strlen(const char * str)
{
 int count = 0;
 assert(str);
 while(*str)
 {
 count++;
 str++;
 }
 return count;
}

strcut函数:

1.这个函数实现的是字符串追加的功能

2.源字符串以 '\0' 结束,

⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始,当执行到'\0'时就会停止。

3.⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。

strcut的模拟实现:

void my_strcut(char* a, const char* b)
{
	int c = a;
	assert(a && b);
		while (*a)
		{
			a++;
		}
		while (*a++ = *b++)
		{
			;
		}
		return c;
}
int main()
{
	char a[20] = "abcd";
	char b[20] = "efg";
	my_strcut(a, b);
	printf("%s", a);
	return 0;
}

strcmp函数:

1.功能:

比较字符串的大小

2.规则:

第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字

第⼀个字符串等于第⼆个字符串,则返回0

第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字

vs中它返回的数字是-1,0,1.

字符比较的方法为:⽐较两个字符串中对应位置上字符ASCII码值的⼤⼩,不是字母或字符的多少。

3.strcmp的模拟实现:

int my_strcmp(const char* a, const char* b)
{
	
	assert(a && b);
	while (*a==*b)
	{
		if (*b=='\0')
		{
			return 0;
		}
		a++;
		b++;
	}
	if (*a > *b)
	{
		return 1;
	}
	else
	{
		return -1;
	}
}
int main()
{
	char a[20] = "abcd";
	char b[20] = "efg";
int r=	my_strcmp(a, b);
	printf("%d", r);
	return 0;
}

 strcpy函数:

1.功能:会将源字符串中的字符串和 '\0' 拷⻉到⽬标空间。

⽬标空间必须⾜够⼤,以确保能存放源字符串

2.strcmp的模拟实现:

char *my_strcpy(char *dest, const char*src)
{ 
char *ret = dest;
 assert(dest != NULL);
 assert(src != NULL);
 
 while((*dest++ = *src++))
 {
     ;
 }
 return ret;
 }

以上是一些平时常用的一些字符串函数,感兴趣的可以去搜索了解更多。

标签:return,函数,++,char,int,字符串,my
From: https://blog.csdn.net/2301_80167891/article/details/136791286

相关文章

  • SQL窗口函数
    通俗易懂的学会:SQL窗口函数-知乎(zhihu.com)SQL题目讲解——窗口函数(一)_哔哩哔哩_bilibili因为窗口函数是对where或者groupby子句处理后的结果进行操作,所以窗口函数原则上只能写在select子句中  ......
  • 复试C++14真题 看程序写结果5 虚函数、继承 易错?
    复试C++14真题 看程序写结果5  虚函数、继承#include<iostream>usingnamespacestd;classA{public:virtualvoidprint(){cout<<"A::print"<<endl;}//voidprint(){cout<<"A::print"<<endl;}};classB:public......
  • Java中常见字符串拼接九种方式
    一、前言在Java编程中,字符串拼接是一项非常基础的操作,它涉及到了很多日常开发工作中常见的场景,例如拼接SQL语句、构建HTTP请求参数等等。因此,对于掌握好字符串拼接技巧不仅有助于提高代码效率,而且能够避免一些潜在的性能问题。下面我们就来列举出来几种方式,搭配例子!二......
  • Android第一行代码——快速入门 Kotlin 编程(3.7 Kotlin课堂:标准函数和静态方法)
    目录3.7        Kotlin课堂:标准函数和静态方法3.7.1    标准函数with、run和apply3.7        Kotlin课堂:标准函数和静态方法        现在我们即将进入本书首次的Kotlin课堂,之后的几乎每一章中都会有这样一个环节。虽说目前你已经可......
  • 冒泡、选择排序;二维数组;函数三要素,形参实参
    冒泡排序法012max08,12,13,98,12,13,98,12,9,131318,12,98,9,121228,993第一轮从前往后两两比较,4个元素比较3次,得出最大值为13。第二轮,3个元素比较2次,最大值为12。第三轮,2个元素比较1次,最大值为9。通过简单较少的数据推导得出结论,i个元素需要比较i-1轮,第j轮需要比较i-1......
  • 1312. 让字符串成为回文串的最少插入次数c
    intmin;voiddfs(char*s,inthead,inttail,intcount){if(head>=tail){if(count<min)min=count;return;}if(s[head]==s[tail]){dfs(s,head+1,tail-1,count);}else{dfs(s,head+1,tail,count+1);......
  • C++ static函数调用问题
    静态成员变量虽然在类中,但它并不是随对象的建立而分配空间的,也不是随对象的撤销而释放(一般的成员在对象建立时会分配空间,在对象撤销时会释放)。静态成员变量是在程序编译时分配空间,而在程序结束时释放空间。静态成员的定义和声明要加个关键static。静态成员可以通过双冒号来使用......
  • 代码随想录算法训练营第十一天| 20. 有效的括号、1047. 删除字符串中的所有相邻重复项
    题目:20.有效的括号文章链接:代码随想录视频链接:LeetCode:20.有效的括号题目链接:力扣题目链接图释:classSolution{public://有效的括号boolisValid(strings){ //遇到左括号时就放入右括号,遇到右括号时,与栈内的顶元素进行比较 //情况一:与栈顶元素相等,则是t......
  • 洛谷题单指南-集合-P3370 【模板】字符串哈希
    原题链接:https://www.luogu.com.cn/problem/P3370题意解读:本题要求理解哈希的原理,自行建立哈希表解题,如果直接使用map,就不推荐。解题思路:先介绍哈希的原理1、什么是哈希?什么是哈希表?先从一个问题出发:给定不超过105个整数(取值1~109),要统计不重复整数的数量。首先,如果取值范围......
  • [转]Python格式化字符串的4种方式
     文章目录Python格式化字符串的4种方式一:%号二:str.format三:f-Strings四:标准库模板五:总结四种方式的应用场景 Python格式化字符串的4种方式一:%号%号格式化字符串的方式从Python诞生之初就已经存在时至今日,python官方也并未弃用%号,但也并不推荐这种格式化方式......