6.C_Demo 数组练习:删除字符串的空格

题目:

现在有一个字符串,编写一个函数能够删除字符串中的空格字符。

思路:

删除字符串的空格,需要一个指针point来遍历字符串,一个指针LinkPoint来指向需要添加值的地方。当第一次找到空格时,将该位置point赋值给LinkPoint。然后每找到一次非空格的值就赋给LinkPoint位置,之后LinkPoint向后移动一位,指向下一次非空格值的赋值位置。

注意点:

  • 对于字符串,需要注意' \0 ',' \0 '是非空格值,但它是结束符,所以要特殊处理。
  • 对于字符串,操作之后要在最后手动加上' \0 '结束符

代码实现如下:

#include <stdio.h>
#include <string.h>

void StrDelBlank(char* str){
	
	char* point = str;//数据遍历位置 
	char* LinkPoint = str;//链接位置 
	char FirstKongGeFlag = 0;//第一次找到空格 
	char DebugI = 0; 
	
	//1.判断是否传入参数有误 
	if(point == NULL){
		printf("err:str is NULL \n");
		return; 
	}else{
		printf("Head Address = %#x\n",point);	
	} 
	
	//2.遍历	
	while(*point!='\0'){
		
		printf("Debug:%d\n",DebugI++);
		printf("Debug:point = %#x\n",point);
		printf("Debug:LinkPoint = %#x\n",LinkPoint);
		printf("Debug:Now char is %c\n",*point);
		//第一次发现空格 
		if(*point == ' ' && FirstKongGeFlag == 0){
			FirstKongGeFlag = 1;
			LinkPoint = point;
			printf("Debug:first find ' '\n");	
		}
		
		//当前不是空格且找到了链接位置,进行链接 
		if(*point!=' ' && *point!='\0' && FirstKongGeFlag==1){
			printf("Debug:Link *point to *LinkPoint\n");
			*LinkPoint = *point;
			*point = ' ';
			LinkPoint++;
		} 
		
		point++;
		printf("\n");
	}
	*LinkPoint = '\0';//补充末尾'\0' 	
}
 
int main(){
	
	char str[] = "   ha e l l      o";
	char strlen1,strlen2;
	 
	strlen1 = strlen(str);
	StrDelBlank(str);
	strlen2 = strlen(str);
	
	printf("before del blank,strlen = %d\n",strlen1); 
	printf("after del blank,strlen = %d,str = %s\n",strlen2,str); 
	
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的配置文件,这是一个用于姿态估计的pose_demo的配置示例。该配置文件包括了处理器配置(processor_cfg)和命令行参数配置(argparse_cfg)。 处理器配置包括以下内容: - type:指定处理器类型为"processor.pose_demo.inference",这可能是一个自定义的处理器类型。 - gpus:指定使用的GPU数量为1。 - worker_per_gpu:指定每个GPU的worker数量为1。 - video_file:指定输入视频的路径为"resource/data_example/skateboarding.mp4"。 - save_dir:指定结果保存的目录路径为"work_dir/pose_demo"。 检测配置(detection_cfg)包括以下内容: - model_cfg:指定检测模型的配置文件路径为"configs/mmdet/cascade_rcnn_r50_fpn_1x.py"。 - checkpoint_file:指定检测模型的checkpoint路径为"mmskeleton://mmdet/cascade_rcnn_r50_fpn_20e"。 - bbox_thre:指定检测目标的边界框阈值为0.8。 估计配置(estimation_cfg)包括以下内容: - model_cfg:指定姿态估计模型的配置文件路径为"configs/pose_estimation/hrnet/pose_hrnet_w32_256x192_test.yaml"。 - checkpoint_file:指定姿态估计模型的checkpoint路径为"mmskeleton://pose_estimation/pose_hrnet_w32_256x192"。 - data_cfg:指定姿态估计模型的数据配置,包括图像尺寸、像素标准化值、图像均值和标准差以及后处理选项。 命令行参数配置(argparse_cfg)包括了一些命令行参数的绑定,用于从命令行传递参数给处理器配置。 例如,您可以使用以下命令行参数来运行pose_demo: ``` python pose_demo.py --gpus 1 --video resource/data_example/skateboarding.mp4 --worker_per_gpu 1 --skeleton_model configs/pose_estimation/hrnet/pose_hrnet_w32_256x192_test.yaml --skeleton_checkpoint mmskeleton://pose_estimation/pose_hrnet_w32_256x192 --detection_model configs/mmdet/cascade_rcnn_r50_fpn_1x.py --detection_checkpoint mmskeleton://mmdet/cascade_rcnn_r50_fpn_20e ``` 请注意,以上仅为示例,具体的使用方式和命令行参数可能会有所不同,具体取决于实际情况。 如果您有进一步的问题,请提供更多细节,我将尽力帮助您。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值