leetcode算法总结之字符串除空格操作

来源:互联网 发布:淘宝网注册网上开店 编辑:程序博客网 时间:2024/05/21 18:11
给定字符串(ASCII码0-255)数组,请在不开辟额外空间的情况下删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。例如:"   i    am a      little boy.    ",变成"i am a little boy",语言不限,但不要用伪代码作答,函数输入输出请参考如下的函数原型:

C++函数原型:

voidFormatString(charstr[],intlen){

}

首先是字符串数组操作,不需要再申请内存空间,通过下标访问字符;其次是空格在字符

串中的表示‘ ’,与‘\0’区分开;

'\0'表示字符串结束符,代表字符串结束,而空格是一个普通字符,显示在文本中可以选中。
'\0'的ASCII码为0,空格的ASCII码为32。

代码实现:

voidFormatString(charstr[], intlen)
{
  if(str == NULL || len <= 0)
  return;
 
  inti = 0, j = 0;
  while(str[i] == ' ')//开头的空格
    i++;
  while(str[i] != '\0')
  {
    if(str[i] == ' ' && (str[i+1] == ' ' || str[i+1] == '\0'))
    {
//中间或者结尾的空格
        i++;
        continue;
    }
    str[j++] = str[i++];
  }
  str[j] = '\0';
}

0 0
原创粉丝点击