字符串指定删除的数组解法

题目编号 :Exp05-Basic04,GJBook3-07-11

题目名称:字符串部分删除

题目描述:

编写程序实现:使用自编函数char * str_delete(char *s, int v, int w)从字符串s的第v个字符开始删除w个字符,并将处理后的字符串首地址以函数返回值带回调用点。


输入:

第一行输入两个整数分别对应 v和w(0≤v, w<MIN(256,strlen(s))),测试数据已保证v和w符合要求;

输入:
2 6
ABCDEFGH 12345
输出:

第二行输入一个长度不超过256的字符串,字符串可能含有空格。

输出:

处理后的字符串。
 

样例:

AH 12345

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * str_delete(char *s, int v, int w)//注意字符的序号和字符的个数区别:个数是序号数加1;序号是从零开始的
{
	int i;
	for(i=v+w-1;i<=strlen(s);i++)//这个i的=号是关键,这样可以把a[str+1]位置的'\0'也移动w位给新数组加结束符。
	{
		s[v-1]=s[i];
		v++;
	}
	return s;
}
int main()
{
    int v,w;
    scanf("%d %d ",&v,&w);
	char a[1000];
	gets(a);
	printf("%s",str_delete(a,v,w));
    return 0;
}
//指针法不会用,需要看网上的代码 

### JavaScript 中使用 jQuery 的 $.grep() 方法 在 JavaScript 编程中,可以利用 jQuery 库提供的 `$.grep()` 函数来高效地从数组中移除特定元素。此方法接受两个参数:待处理的数组和一个用于筛选的回调函数。对于每一个遍历到的元素,如果回调返回 true 则保留该元素;反之则排除之。 ```javascript var myArray = ["apple", "banana", "orange", "grape"]; var stringToRemove = "orange"; myArray = $.grep(myArray, function(value) { return value !== stringToRemove; }); console.log(myArray); ``` 上述代码展示了如何构建并初始化一个字符串类型的数组 `myArray` 和设定目标项 `stringToRemove` 后,调用 `$.grep()` 来完成过滤工作[^1]。 ### 使用原生 JavaScript 的 splice() 方法 除了借助第三方库外,还可以直接运用内置于 JavaScript 的 Array.prototype.splice() 方法来进行更灵活的操作。splice 不仅能删除单个或多个连续项目,还能在同一时间向指定位置插入新成员。 ```javascript let fruits = [&#39;apple&#39;, &#39;banana&#39;, &#39;cherry&#39;]; fruits.splice(fruits.indexOf(&#39;banana&#39;), 1); // 移除&#39;banana&#39; console.log(fruits); // 输出: [&#39;apple&#39;, &#39;cherry&#39;] ``` 这段示例说明了当已知确切想要消除的目标时,可以通过 indexOf 定位其索引值进而传递给 splice 实现精准打击的效果[^2]。 ### PHP 处理方式简介 针对 PHP 用户而言,同样存在多种途径达成相同目的。考虑到 PHP 是一门广泛应用于 Web 开发领域的服务器端脚本语言,它提供了诸如 unset(), array_diff() 等便捷工具帮助开发者轻松解决此类需求。 ```php <?php $array = array("red", "green", "blue"); $key_to_remove = array_search("green", $array); if ($key_to_remove !== false){ unset($array[$key_to_remove]); } print_r($array); ?> ``` 以上片段演示了一种基于键名的方式快速定位并销毁选定条目实例[^3]。 ### C 语言经典解法展示 而在较为底层的语言如 C 当中,则需手动编写逻辑以达到预期效果。下面给出的是一个完整的程序清单,其中包括读取输入、线性查找匹配项及其后续覆盖过程直至最终更新整个列表长度。 ```c #include <stdio.h> int main(){ int arr[] = {1, 2, 3}; size_t length = sizeof(arr)/sizeof(*arr); int target = 2; for(size_t i=0 ; i<length ; ++i){ if(arr[i]==target){ for(; i<length-1 ; ++i) arr[i]=arr[i+1]; --length; break; } } for(int j=0;j<(int)length;++j) printf("%d ",arr[j]); return 0; } ``` 这个案例体现了传统循环结构配合条件判断语句所构成的经典算法思路[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值