• 删除给定字符的算法


    面试中,面试官问我现场写的一个算法题目:给定一个字符串和一个字符,删除字符串中包含和此字符相同的字符。

    算法1:

     1 #include<stdio.h>
     2 
     3 void delChar(char * str, char p){
     4     int i = 0;
     5     int j = 0;
     6     while(str[j] != NULL){
     7         if(str[j] == p)
     8             j++;
     9         else{
    10             str[i] = str[j];
    11             i++;
    12             j++;
    13         }
    14     }
    15     str[i] = '';
    16 }
    17 
    18 int main(){
    19     char test[18] = "www.baidu.com";
    20     delChar(test, 'w');
    21     puts(test);
    22 //    free(s);
    23     return 0;
    24 } 

    算法2:(动态分配空间)

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<malloc.h>
     4 
     5 char * delChar(char* str, char x){
     6     int len = strlen(str);
     7     if(str == NULL)
     8         return NULL;
     9     
    10     char *p = (char*)malloc(len + 1); 
    11     char *q = p;
    12     while(*str != ''){
    13         if(*str == x)
    14             str++;
    15         else {
    16             *p++ = *str;
    17             str++;
    18         }
    19     }
    20     *p = '';
    21     return q;
    22 }
    23 
    24 int main(){
    25     char test[18] = "www.baidu.com";
    26     char *s = delChar(test, 'w');
    27     puts(s);
    28     free(s);
    29     return 0;
    30 } 
  • 相关阅读:
    JavaWeb
    Network
    JavaWeb
    Maven
    IDEA
    Maven
    Network
    JavaWeb
    JavaWeb
    JavaWeb
  • 原文地址:https://www.cnblogs.com/dormant/p/5299116.html
Copyright © 2020-2023  润新知