字符串替换空格

简介: 字符串替换空格

文章目录


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

🌘

面试题:

image.png

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

首先我看到是%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;
}


结果

image.png



目录
相关文章
|
7月前
|
机器学习/深度学习 Java
java字符串练习题3、字符串中字符是否相同判断
java字符串练习题3、字符串中字符是否相同判断
64 0
|
C语言
向字符串添加空格
首先我们可以算出s数组的大小-len,也可以直接得到spaces的大小-即要添加的空格数,那么我们要创建的数组大小是len+spacesSize吗? 不是,应该是len+spacesSize+1,这里的加一是存放一个'\n' 这里呢 我们可以写一个for i循环,用来把s中的元素放到arr里面,然后在外面定义一个falg用来充当arr的下标,存进一个元素falg++,再定义一个j=0,当i == space[j]就存放空格,每存放一个空格++.
77 0
|
测试技术 索引
根据首尾字符串截取中间字符串
今天分享一个函数:虽然它非常简单,但是真的很好用!也很常用!比如 “我今天真的很高兴” 这句话,要把 `今天` 截取出来,我们可以直接调用函数拿到结果,不需要匹配索引、也不用写正则!
80 0
|
Python
字符串首尾空格去除问题
字符串首尾空格去除问题
103 0
|
测试技术
10.替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
98 0
|
机器学习/深度学习 NoSQL 算法
字符串——344.反转字符串
本专栏按照数组—链表—哈希—字符串—栈与队列—二叉树—回溯—贪心—动态规划—单调栈的顺序刷题,采用代码随想录所给的刷题顺序,一个正确的刷题顺序对算法学习是非常重要的,希望对大家有帮助
字符串——344.反转字符串
Day8——反转字符串、反转字符串||、替换空格、反转字符串里的单词、左旋字符串
Day8——反转字符串、反转字符串||、替换空格、反转字符串里的单词、左旋字符串
107 0