剑指offer 面试题4 替换空格
2014-07-11 19:31
393 查看
E:\arithmetic\BlankTo
复杂度O(n)
复杂度O(n)
#include <stdio.h> #include <string.h> void blankToSymbol(char a[]); int main(int argc, char *argv[]) { /*测试用例:a)功能测试; b,c,d,e,f)特殊值(空格在开头,在结尾, 连续两个空格,全空格,没空格);g)负面测试 (空字符串)*/ char a[80] = "we are happy"; char b[80] = " we are happy"; char c[80] = "we are happy "; char d[80] = "we are happy"; char e[80] = " "; char f[80] = "weare"; char *g = NULL; blankToSymbol(a); blankToSymbol(b); blankToSymbol(c); blankToSymbol(d); blankToSymbol(e); blankToSymbol(f); blankToSymbol(g); return 0; } void blankToSymbol(char a[]){//长度不用给 ,自己求 if(a == NULL) {//增强鲁棒性 printf("blank to symbol failed!\n"); return; } int i, j; int cntZero = 0; int length = 0;//字符串长度,不算\0 for(i=0 ; a[i]!='\0' ; i++){ length++; if(a[i] == ' '){ cntZero++; } } for(i=length, j = length+cntZero*2 ; i>=0,j>=0 ; i--, j--){//计算公式别写错 ,i取到length,即\0 if(a[i] != ' '){ a[j] = a[i]; } else{ a[j--] = '0'; a[j--] = '2'; a[j] = '%'; } } printf("%d\n%s\n", strlen(a), a); }
相关文章推荐
- 剑指offer--面试题4:替换空格
- 剑指offer 面试题4—替换字符串中空格
- 剑指Offer学习之面试题4 : 替换空格
- 剑指Offer----面试题四:替换空格
- 剑指offer - 面试题4:替换空格
- 剑指offer面试题4 替换空格
- [剑指offer]面试题4:替换空格
- 剑指offer面试题4 替换空格(java)
- 剑指offer-面试题4 替换空格
- 剑指offer中的面试题替换空格
- 剑指offer-面试题4 - 替换空格
- 剑指offer面试题4:替换字符串中的空格
- 剑指offer——面试题4:替换空格
- 【剑指offer】面试题4:替换空格 java
- 剑指offer 面试题4 替换空格
- 【面试题】剑指Offer-4-替换空格
- 【剑指offer】2.3.2 字符串——面试题4:替换空格
- 【剑指offer】面试题4:替换空格
- 【剑指offer】面试题5:替换空格
- 剑指offer面试题之替换空格