【问题标题】:A function to delete backspace for a pointer to string删除指向字符串指针的退格键的函数
【发布时间】:2020-02-05 04:05:10
【问题描述】:

我需要编写一个函数来删除退格并移动所有后续字符。这是我目前所拥有的。

int ProcessBackspaces(char *rpn_sentence)
{
        int i=0;
        char *array [MAX];
        char *b_token;
        b_token = strtok(rpn_sentence, "\b");
        while (b_token!=NULL){
            array[i]=b_token;
            i++;
        }    
}

我被困在如何让传入的指针(char *rpn_sentence) 指向指针数组的每个元素。

【问题讨论】:

    标签: c arrays string pointers


    【解决方案1】:

    如何使传入的指针(char *rpn_sentence)指向指针数组的每个元素。

    只需增加指针(或它的副本);

    还要考虑字符串可能有 0(那么快)或超过 1 个退格(只复制一次字符)。

    char *ProcessBackspaces(char *rpn_sentence) {
      char *src = strchr(rpn, '\b'); // Find first quickly
      if (src) {
        char *dest = src;
        src++;
        while (*src) {
          if (*src != '\b') {
            *dest++ = *src;  // Save non-backspaces, increment destination
          }
          src++;             // Increment source
        }
        *dest = '\0';      
      }
      return rpn;  // Perhaps return start of string
    }
    

    【讨论】:

      猜你喜欢
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2013-04-26
      • 1970-01-01
      • 2014-11-29
      相关资源
      最近更新 更多