设为首页 加入收藏

TOP

字符串替换空格实例题
2014-04-06 17:41:57 来源: 作者: 【 】 浏览:236
Tags:字符串 替换 空格 例题

  以下代码在vs2010测试通过:

  /**

  * 解题思路:

  * 方法-:从头开始遍历数组,遇到一个空格替换一个空格,这样每一次空格后面的字符都需要移动,

  假设字符串长度为n,空格数为n,则时间复杂度为:o(n^2)。

  方法二:先算出字符串的空格数,替换之后字符串的新的长度是length+blankNumber*2

  然后从字符串的结尾开始移动字符,遇到空格直接替换,则所有字符只移动一次,便可以替换所有空格,

  其时间复杂度为:o(n)

  方法二的代码如下:

  */

  #include "stdafx.h"

  #include "stdlib.h"

  #include "stdio.h"

  #include "string.h"

  void replaceBlank(char str[]);

  int _tmain(int argc, _TCHAR* argv[]){

  char str[50] = "I am a student.";

  printf("before replace:\n");

  printf("%s",str);

  replaceBlank(str);

  printf("\nafter replace:\n");

  printf("%s",str);

  system("pause");

  return 0;

  }

  void replaceBlank(char str[]){

  int i=0;

  int length;

  int blankNumber = 0;

  int originalLength,newLength;

  length = strlen(str);

  while(str[i] != '\0'){

  if(str[i] == ' '){

  blankNumber ++ ;

  }

  i++;

  }

  originalLength = length;

  newLength = originalLength + blankNumber*2;

  while(originalLength >= 0 && newLength > originalLength ){

  if(str[originalLength] == ' '){

  str[newLength--] = '0';

  str[newLength--] = '2';

  str[newLength--] = '%';

  }else{

  str[newLength--] = str[originalLength];

  }

  originalLength-- ;

  }

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言中-const,volatile 下一篇C语言正则表达式的使用

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: