(字符串)字符串的删除、复制、替换

题目要求:

给字符数组,要求删除其中的某个字符,并将某个字符替换。

假设将空格替换为%20,并且原数组大小足够大,只能在原数组操作。

解题思路:

删除操作:遍历数组,如果不是删除的字符,则依次写入数组,遇到要删除的字符,则跳过;

复制/替换操作:复制是指将数组中某个字符复制n次,如b变成bb;是指将字符替换成其他字符或字符串。这种操作的一个思路就是:在遍历数组的过程中,记录要被复制或者替换的字符的个数,然后计算复制或者替换后字符数组的大小,接着从后往前依次将原数组的字符写入,这样就无需进行移位,也不会覆盖原数组。

参考代码:

#include <iostream>

using namespace std;

// delete some char, and replace blanket with %20
void stringDeleteAndReplace(char a[],char del){
//    int n=sizeof(a)/sizeof(a[0]);
    int len=0;
    int num_rep=0;
    // delete some char and record the num of ‘ ‘
    for(int i=0;a[i];i++){
        if(a[i]==‘ ‘) num_rep++;
        if(a[i]!=del) a[len++]=a[i];
    }
    a[len]=‘\0‘;

    // newlength after deletion and replacement
    int newlength=len+1+2*num_rep;
    int j=newlength-1;
    // from last to first
    for(int i=len;i>=0;i--){
        if(a[i]!=‘ ‘) a[j--]=a[i];
        else{
            a[j--]=‘0‘;
            a[j--]=‘2‘;
            a[j--]=‘%‘;
        }
    }
}

int main()
{
    char a[100]="This is my name: AndyJee";
    stringDeleteAndReplace(a,‘s‘);
    cout<<a<<endl;
    return 0;
}

运行结果:

时间: 2024-10-12 13:31:33

(字符串)字符串的删除、复制、替换的相关文章

NSMutableString,可变字符串,拼接,删除,插入,替换

<span style="font-size:18px;"> NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"]; //对于可变字符串的增删改方法, 都是在原字符串基础上进行修改, 所以修改之后的原字符串的内容发生变化, 所以无需返回值 //1 在原字符串基础上拼接Frank [str appendFormat:@"Frank"]; NSLog

Swift字符串的插入、删除和替换-备

对应可变字符串可以插入.删除和替换,String提供了几个方法可以帮助实现这些操作.这些方法如下: splice(_:atIndex:).在索引位置插入字符串. insert(_:atIndex:).在索引位置插入字符. removeAtIndex(_:).在索引位置删除字符. removeRange(_:).删除指定范围内的字符串. replaceRange(_:,with: String) .使用字符串或字符替换指定范围内的字符串. 代码: var str ="Swift" pri

《从零开始学Swift》学习笔记(Day 14)——字符串的插入、删除和替换

原创文章,欢迎转载.转载请注明:关东升的博客 对应可变字符串可以插入.删除和替换,String提供了几个方法可以帮助实现这些操作.这些方法如下: splice(_:atIndex:).在索引位置插入字符串. insert(_:atIndex:).在索引位置插入字符. removeAtIndex(_:).在索引位置删除字符. removeRange(_:).删除指定范围内的字符串. replaceRange(_:,with: String) .使用字符串或字符替换指定范围内的字符串. 代码: va

Swift 2.0学习笔记(Day 14)——字符串的插入、删除和替换

原创文章,欢迎转载.转载请注明:关东升的博客 对应可变字符串可以插入.删除和替换,String提供了几个方法可以帮助实现这些操作.这些方法如下: splice(_:atIndex:).在索引位置插入字符串. insert(_:atIndex:).在索引位置插入字符. removeAtIndex(_:).在索引位置删除字符. removeRange(_:).删除指定范围内的字符串. replaceRange(_:, with: String) .使用字符串或字符替换指定范围内的字符串. 代码: v

JavaScript之jQuery-3 jQuery操作DOM(查询、样式操作、遍历节点、创建插入删除、替换、复制)

一.jQuery操作DOM - 查询 html操作 - html(): 读取或修改节点的HTML内容,类似于JavaScript中的innerHTML属性 文本操作 - text(): 读取或修改节点的文本内容,类似于JavaScript中的textContent属性 值操作 - val(): 读取或修改节点的value属性值,类似于 JavaScript 中的value值 属性操作 - attr(): 读取或者修改节点的属性 - removeAttr(): 删除节点的属性 二.jQuery操作

替换空格:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

剑指offer替换空格: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路:当我们从前往后进行替换时,每替换一个就要移动后面的所有字符,时间复杂度是0(n2) 我们可以从后向前替换,先统计出所有的空格数space_count,就能得到替换后的长度是length+2*space_count 定义两个指针(可以用下标表示),i指向替换前的最后一个字符下标,j指向替换后的最后一个字符下标

将一个字符串的元音字母复制到另一个字符串,并排序

问题描述: 有一字符串,里面可能包含英文字母(大写.小写).数字.特殊字符,现在需要实现一函数,将此字符串中的元音字母挑选出来,存入另一个字符串中,并对字符串中的字母进行从小到大的排序(小写的元音字母在前,大写的元音字母在后,依次有序). 说明: 1.元音字母是a,e,i,o,u,A,E,I,O,U 2.筛选出来的元音字母,不需要剔重 最终输出的字符串,小写元音字母排在前面,大写元音字母排在后面,依次有序. 要求实现函数: void sort_vowel (char* input, char*

请实现一个函数,把字符串中的每个空格替换成“%20”

请实现一个函数,把字符串中的每个空格替换成"%20".例如输入"we are happy.",则输出"we%20are%20happy." #include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr[] = "we are happy"; int i = 0; int j = 0; int len

jquery基础-包裹 替换 删除 复制

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>包裹 替换 删除 复制</title><script type="text/javascript" src="../js/jquery-1.7.1.min.js"></script>&l

1字符串中的world替换为i bookan wisdom2.字符串的相加字符串输出,长度3比较字符串大小4截取字符串5字符串内所有a都替换成A6判断字符串是否以http开头7将字符串内admin和123截取出来8字符添加

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { /* 第1题 字符串中的world替换为i bookan wisdom */ //        NSString *[email protected]"hello world and sunshine"; //        NSString *newstr3=[str1 string