首页 > 其他分享 >C基础day10

C基础day10

时间:2024-07-13 08:58:03浏览次数:8  
标签:src dest 基础 char day10 printf 字符串 gets

#include<myhead.h>
#define Max_Size 100


//strlen函数
int my_strlen(const char *str)
{
	int len = 0;
	while(*str++ !='\0')
	{
		len++;
	}
	return len;
}

//strcpy函数
void my_strcpy(char *dest,const char *src)
{
	while(*src) //遍历src将src赋值给dest
	{
		*dest++ = *src;
		src++;
	}
	*dest = '\0';
}

//strcmp
int strcmp(const char *s1,const char *s2)
{
	while(*s1) //遍历s1和s2比较
	{
		if(*s1 == *s2)
		{
			s1++;
			s2++;
		}
		else
			return *s1 - *s2;
		if(*s1 == '\0')
			return 0;
	}

}

//strcat
char *my_strcat(char *dest,const char *src)
{
	int i=0;
	while(*dest) //遍历到dest末尾
	{
		dest++;
	}
	while(*src) //遍历src连接到dest的末尾
	{
		*dest++ =*src++;
	}
	*dest = '\0';
}

//子串
void my_strstr(const char *dest,const char *src)
{
	while(*src) //遍历src
	{
		while(*src == *dest) //当dest首位等于src的某一位开始遍历dest
		{
			src++;
			dest++;
			if(*dest == '\0') //dest遍历结束标志,说明包含
			{
				printf("包含\n");
				break;
			}
			else 
			{
				continue;
			}
		
		}
		src++;
		if(*dest != '\0' && *src == '\0') //dest已经遍历结束,src还没遍历结束说明不包含
			printf("不包含\n");
	}
}


int main(int argc, const char *argv[])
{
	char str[Max_Size];
	char dest[Max_Size];
	char src[Max_Size];
	//strlen
	//输入字符串
	printf("strlen\n");
	printf("请输入字符串:");
	gets(str);
	int res = my_strlen(str);
	//输出
	printf("字符串长度为:%d\n",res);


	//strcpy	
	printf("strcpy\n");

	printf("请输入字符串src:");
	gets(src);
	printf("请输入字符串dest:");
	gets(dest);
	printf("src:");
	puts(src);
	printf("dest:");
	puts(dest);
	my_strcpy(dest,src);
	printf("复制后的dest:");
	puts(dest);

	//strcmp
	printf("strcmp\n");

	printf("请输入字符串1:");
	gets(dest);
	printf("请输入字符串2:");
	gets(src);
	int value = strcmp(dest,src);
	printf("%d\n",value);

	//strcat	
	printf("strcat\n");

	printf("请输入字符串1:");
	gets(dest);
	printf("请输入字符串2:");
	gets(src);
	my_strcat(dest,src);
	puts(dest); 

	//是否包含子串
	printf("strstr\n");

	printf("请输入字符串1:");
	gets(dest);
	printf("请输入字符串2:");
	gets(src);
	printf("字符串2是否包含字符串1:");
	my_strstr(dest,src);
	




	return 0;
}

标签:src,dest,基础,char,day10,printf,字符串,gets
From: https://blog.csdn.net/qq_55245263/article/details/140386584

相关文章

  • 机械学习—零基础学习日志009(评估方法1留出法)
    评估方法我们通过实验测试来对学习器的泛化误差进行评估并进而做出选择。因此,需要“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testingerror)作为泛化误差的近似。通常假设测试样本也是从样本真实分布中独立同分布采样而得,但需注意的是,测试集应......
  • Java基础之——final关键字的使用
    #Java基础复习##参考文章:Java:final关键字的作用(方法、变量、类)_java语言中在类定义时使用final关键字修饰是指这个类-CSDN博客#一、理解含义final是Java中一个保留的关键字,可以用于修饰变量、方法和类。任何实体(变量,方法或类)一旦被声明final后,只能分配(赋值)一次。也就是......
  • 【Python 基础】列表 - 1
    列表在你能够开始编写程序之前,还有一个主题需要理解,那就是列表数据类型及元组。列表和元组可以包含多个值,这样编写程序来处理大量数据就变得更容易。而且,由于列表本身又可以包含其他列表,所以可以用它们将数据安排成层次结构。列表数据类型“列表”是一个值,它包含多个字构......
  • DP优化技巧-斜率优化(基础版)
    DP优化技巧-斜率优化(基础版)基本思路:1.寻找出暴力DP转移方程式。例子:f[i]=min{f[j]+v[i]+v[j]+val(i,j)}2.将方程式写成y=kx+b的形式,其中b为与i相关的项,y为与j相关的项,kx对应的是val(i,j)项,其中x对应的的是与j相关的,k对应的是与i相关的以及常数。例子:假设有转移方程f[i]=min{f[......
  • Java基础(二)
    一、BigDecimal等值比较compareTo()忽略精度equals()比较值和精度(1.0,1.00比较结果为false)==BigDecimal是对象,不能用==比较值BigDecimal(Double)创建是损失精度的BigDecimal(String)创建是精确的二、对负数取绝对值不一定是正数Math.abs()int:......
  • Docker 使用基础(3)—容器
                         ......
  • 0基础_永磁同步电机FOC(矢量控制)实践快速入门(一)——通过DSP28335配置SPI与AD2S1210通信
    AD2S1210.cADSP28335配置SPA模块与AD2S1210通信读取旋转变压器反馈的位置、速度信息欢迎大家进群领取电机控制,嵌入式学习资料!程序文件也在群里哦目录文章目录前言一、位置角是什么,为什么要获取位置角?二、如何获取位置角?三、AD2S1210介绍四、如何通过AD2S1210进行旋......
  • 深度学习入门指南:从基础概念到实战项目
    今天我们来聊聊深度学习。这名字听起来可能有点吓人,但其实它并没有那么神秘。就像我们小时候学骑自行车,一开始可能会摔倒几次,但一旦掌握了平衡,你就会觉得骑车是一件很自然的事情。深度学习也是这样,只要你愿意花点时间去了解和实践,很快就能上手。什么是深度学习?我们先来拆解一......
  • 十天速通C语言基础(day01)
    目录一、前言二、大纲三、Linux命令快捷键新建查看切换 复制移动 删除 打开终端四、vi编辑器1、vi编辑器的使用2.vi模式切换命令3.vi拷贝与粘贴命令 4.vi保存和退出命令5.vi光标命令6.vi的查找命令7.vi替换命令8.vi复制和剪切命令一、前言    ......
  • 音视频开发基础知识
    视频解码解复用(Demux):解复用也可叫解封装。这里有一个概念叫封装格式,封装格式指的是音视频的组合格式,常见的有mp4、flv、mkv等。通俗来讲,封装是将音频流、视频流、字幕流以及其他附件按一定规则组合成一个封装的产物。而解封装起着与封装相反的作用,将一个流媒体文件拆解成音频......