字符串替换空格

文章目录


字符串替换空格(多换一)

????

面试题:

字符串替换空格

面试题需要考虑规范,算法,代码,可移植性,还有鲁棒性等,考虑了这些之后再下手就会很舒服

首先我看到是%20替换空格,万一面试官说换其他的然后你很快的改了出来这也是一种本事,所以函数是必不可缺的,也最好有人机交互的样子,反正他有没有说写死.


代码

这里时间复杂度也是O(n),鲁棒性也不错,基本是可以拿下offer的代码

#include<stdio.h>
#include<assert.h>
#include<string.h>
char* replace(char* parr, const char* e1, const char* e2)
{
    assert(e1 && e2);
    char arr2[100] = { 0 };//创建一个数组用来存改变后的字符串
    unsigned int len = strlen(parr);
    unsigned int len1 = strlen(e1);
    unsigned int len2 = strlen(e2);
    int i = 0;//用来跟踪parr
    int j = 0;//用来跟踪arr2
    int z = 0;//用来跟踪e2
    for (i = 0; i < len; i++)
    {
        if (parr[i] != *e1)
        {
            arr2[j++] = *(parr+i);
        }
        else
        {
            for (z = 0; z < len2; z++)
            {
                arr2[j++] = *(e2 + z);
            }
        }
    }
    return arr2;
}


int main()
{
    char arr[100] = { 0 };//给足空间
    while (1)
    {
        printf("请输入原字符串:>");
        gets(arr);
        printf("改变后的字符串为:>%s\n", replace(arr, " ", "%20"));
    }
    return 0;
}


结果

字符串替换空格



上一篇:操作系统内核空间和用户空间的互访问


下一篇:read by other session等待事件