首页 > 其他分享 >字符串——创建,获取长度,复制,搜索——C语言描述

字符串——创建,获取长度,复制,搜索——C语言描述

时间:2022-08-22 23:12:48浏览次数:128  
标签:Str1Len C语言 char 复制 printf 字符串 StringLen StrCopy

字符串——创建,获取长度,复制,搜索——C语言描述

目录

1.字符串的存储结构

​ 串的数据结构一般采用数组的形式,字符串为’\0’为表示结尾。

2操作字符串

​ 创建,打印,获取长度,拷贝子串,搜索子串

代码:

void OperateString(void) {
	LIST_STATUS Status;
	char Str1[] = "hello";
	int Str1Len;
	char *T = (char *)malloc(sizeof(Str1));

	Str1Len = StringLen(Str1);
	printf("Str1Len = 0x%x\n", Str1Len);

	Status = StrCopy(T, Str1);
	if (Status == SUCCESS) {
		printf("StrCopy successful!\n");
	}else {
		printf("StrCopy failed!\n");
	}
	
	printf("T = %s\n", T);
}

3 获取串的长度

​ 返回字符串的长度,不包括结尾字符’\0’.

代码:

int StringLen(const char * const Str) {
	char *TraStr = Str;
	int StrLen = 0;

	printf("StringLen start\n");
	if (NULL == Str) {
		return 0;	
	}

	while (*TraStr != '\0') {
		StrLen++;
		TraStr++;
	}	

	printf("StringLen end\n");	
	return StrLen;
}

结果:

StringLen start

StringLen end

Str1Len = 0x5

4 拷贝字符串

​ 将字符串S拷贝给新串T

StrCopy(char *T, char *S)

代码:

LIST_STATUS StrCopy(char *T, char *S) {
	char *TraS = S;
	char *TraT = T;

	printf("StrCopy start\n");

	if (T == NULL || S == NULL ) {
		return ERROR;	
	}

	while (*TraS != '\0') {
		*TraT = *TraS;
		TraT++;
		TraS++;
	}

	*TraT = '\0';

	printf("StrCopy end\n");

	return SUCCESS;
}

结果:

StringLen start

StringLen end

Str1Len = 0x5

StrCopy start

StrCopy end

StrCopy successful!

T = hello

标签:Str1Len,C语言,char,复制,printf,字符串,StringLen,StrCopy
From: https://www.cnblogs.com/meditatorss/p/16614604.html

相关文章

  • oracle时间对比报错:ORA-01861 文字与格式字符串不匹配
    前段时间写一个简单的需求时碰到的,在使用传入的时间参数与oracle数据库里存的时间进行比较时报错,具体错误如下:   在Oracle中,需要使用to_date格式化时间,再进行对比......
  • 使用clipboard.js复制文字+图片到微信后图片不显示问题处理
    使用clipboard.js复制文字+图片,粘贴到微信不显示图片,而QQ可以。解决方案:图片链接使用http,不要使用https。 使用clipboard.js实现复制功能文字+图片到微信客户端输入......
  • Mysql Order By 字符串排序,1 10 2 20,以字符串排序,不是使用数字排序
    一、问题描述:Mysql排序时如果用的的字段为字符串型的,排序规则是这样的:如1,10,2,20,3,4,5,这种排序是按照字符从第一个字符开始比较出来的,但不是我想要的,我想要的是:1,2,3,4,5……,10,20......
  • java将list转为逗号隔开字符串
    1.只要不为空,就在后面添加逗号,最后再用subString()函数截取,去掉最后一位的逗号List<String>test=newArrayList<>();StringtestStrings="";test.add("test1");test......
  • js去除字符串空格(空白符)
    使用js去除字符串内所带有空格,有以下两种种方法:(1)replace正则匹配方法去除字符串内所有的空格:str=str.replace(/\s*/g,"");去除字符串内两头的空格:str=......
  • 什么是docker的写时复制(CoW)?有什么作用?
    问题一个问题:dockerCoW你知道是什么吗? 1、什么是CoW? CoW=Copy-On-Write 也就是,你经常会听到的一个词,叫做:写时复制。 那么,到底什么是写时复制,究竟有什么样......
  • 属性复制和转换
    属性复制和转换publicstatic<X>XtoBean(Objectsrc,Class<X>t){if(t==null){returnnull;}Xinstance=null;try{in......
  • 复制
    ##什么是复制复制是指分布系统中,多台机器上保持相同副本的机制.##多副本能够解决的问题?1.地理位置上的副本,能够降低延迟.高性能2.部分组件失效后,系统依然能够工......
  • 系统学Python(四)字符串
    今天我们来学习字符串。python中的字符串字面量由单引号或双引号括起。str1='hello'str2="hello"#两种写法效果一样print(str1)print(str2)print(type(str1),t......
  • python-f字符串(f-string)99乘法表三种方式
    #%s打印99乘法表foriinrange(1,10):forjinrange(1,i+1):print("%s*%s=%s"%(j,i,j*i),end="")print("\n")#format打印九九乘法表foriinrange(1,......