截取字符串

27 篇文章 4 订阅

输入截取字符串位置,长度,并输出截取的字符串

话不多少,先上代码

void subStr(char str[],char sub[],int pos,int len);//截取算法 
int main() //程序入口,主函数,从这里开始执行
{
	int pos,len;//定义位置长度 
	char str[]={"abcadasda"};
	char sub[20];
	printf("请输入截取的位置:");
	scanf("%d",&pos);
	printf("请输入截取的长度:");
	scanf("%d",&len);
	subStr(str,sub,pos,len);//调用函数 
}
void subStr(char str[],char sub[],int pos,int len)//截取算法 
{
	int i;
	int count = 0;//sub下标初始值 
	int lenght=strlen(str);//求str有效长度 
	if(pos<1||pos>lenght||len<1||len>(lenght-pos+1))//截取位置不能<1||不能大于字符总长度||截取长度不能<1||不能大于总长度-截取位置+1 
	{
		printf("截取有误\n");
	} 
	else
	{
		for(i=pos-1;i<pos+len-1;i++)
		{
			sub[count++]=str[i];	
		}	
	}
	sub[count]='\0';
	printf("sub内的字符串为%s",sub); 
}

解题思路

  1. 截取位置不能<1||不能大于字符总长度||截取长度不能<1||不能大于总长度-截取位置+1
if(pos<1||pos>lenght||len<1||len>(lenght-pos+1))
	{
		printf("截取有误\n");
	}
  1. 先从截取位置的下标开始,小于截取位置+截取长度-1
else
	{
		for(i=pos-1;i<pos+len-1;i++)
		{
			sub[count++]=str[i];	
		}	
	}

3.最后赋值到sun字符串数组后加‘\0’,更严谨

sub[count]='\0';
  • 运行结果
    运行结果

嘿嘿,开始动手吧!
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值