C语言错题锦集(持续更新)

简介: C语言错题锦集(持续更新)

目录


牛客网[编程题]替换空格

题目描述

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

题目分析

由于1个空格占1个字符,但是替换为“%20”话是3个字符。所以需要给字符串增加位置。由于“we are happy”中有2个空格,所以理所当然要增加4个位置,即字符串长度增加4.


算法步骤

1.先确定这个字符串有几个空格。然后根据空格确定新字符串的长度。

2.依次将空格后的字符串往后移动。

3.然后依次补上“%20”这三个字符。


代码

class Solution {
public:
  void replaceSpace(char *str,int length) {
  int spacecnt = 0;
  char* cur = str;
  while (*cur)
  {
    if (*cur == ' ')
    {
      spacecnt++;
    }
    cur++;
  }
  int newlen = length + spacecnt * 2;
  int end1 = length - 1;
  int end2 = newlen - 1;
  while (end1 != end2)
  {
    if (str[end1] != ' ')
    {
      str[end2--] = str[end1--];
    }
    else
    {
      str[end2--] = '0';
      str[end2--] = '2';
      str[end2--] = '%';
      end1--;
    }
  }
  }
};
相关文章
|
7月前
|
C语言
【C语言】错题本(3)
【C语言】错题本(3)
37 0
|
7月前
|
C语言
【C语言】错题本(2)
【C语言】错题本(2)
37 0
|
7月前
|
C语言
【C语言】错题本(1)
【C语言】错题本(1)
53 0
|
存储 编译器 C语言
C语言错题之 10
C语言错题之 10
120 0
|
7月前
|
存储 C语言
【C语言】错题本(4)
【C语言】错题本(4)
37 0
|
存储 C语言
C语言错题之 8
C语言错题之 8
69 0
|
7月前
|
C语言
C语言:初阶测试错题(查漏补缺)
C语言:初阶测试错题(查漏补缺)
44 0
|
C语言
C语言初阶 牛客网刷题笔记(将持续更新..)
C语言初阶 牛客网刷题笔记(将持续更新..)
C语言初阶 牛客网刷题笔记(将持续更新..)
|
7月前
|
存储 IDE 编译器
c语言选择题常见知识点汇总 ------持续更新
当使用free释放掉一个指针内容后,指针变量的值不会被置为NULL,free不会更改指针指向、32位系统下任何类型指针的长度都是4个字节、指针的数据类型声明的是指针实际指向内容的数据类型、野指针是指向未分配或者已经释放的内存地址
|
C语言
C语言分支语句和循环语句经典题及易错题
C语言分支语句和循环语句经典题及易错题
163 0