Missing removeStr and substr function

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • tfelb

    #1

    Missing removeStr and substr function

    Hi all!

    I bought the book "Programmin g in C" by Stephen G Kochan. I miss 2
    answers at his website.
    (removestr and the substr function) How can I implement these
    functions? It would be wonderful if someone can help me out, because
    Stephen Kochan is not reachable.

    Thanks for any help

    T. Felb

  • Lew Pitcher

    #2
    Re: Missing removeStr and substr function

    On Nov 26, 1:05 pm, tfelb <tomico...@gmai l.comwrote:
    Hi all!
    >
    I bought the book "Programmin g in C" by Stephen G Kochan. I miss 2
    answers at his website.
    (removestr and the substr function) How can I implement these
    functions? It would be wonderful if someone can help me out, because
    Stephen Kochan is not reachable.

    While I'm not familiar with Mr. Kochan's book or his functions, I can
    guess how they might be implemented. In fact, unless Mr. Kochan has
    dictated some sort of convoluted processing requirement, both
    functions should be simple to the point of being obvious to anyone
    with even a small amount of experience with C, character arrays, and
    the definition of a string.

    Why don't you post the requirements for both of these functions, and
    the code you've written so far, and we'll see if we can assist you in
    getting it right.



    Comment

    • tfelb

      #3
      Re: Missing removeStr and substr function

      On 26 Nov., 19:13, Lew Pitcher <lpitc...@teksa vvy.comwrote:
      On Nov 26, 1:05 pm, tfelb <tomico...@gmai l.comwrote:
      >
      Hi all!
      >
      I bought the book "Programmin g in C" by Stephen G Kochan. I miss 2
      answers at his website.
      (removestr and the substr function) How can I implement these
      functions? It would be wonderful if someone can help me out, because
      Stephen Kochan is not reachable.
      >
      While I'm not familiar with Mr. Kochan's book or his functions, I can
      guess how they might be implemented. In fact, unless Mr. Kochan has
      dictated some sort of convoluted processing requirement, both
      functions should be simple to the point of being obvious to anyone
      with even a small amount of experience with C, character arrays, and
      the definition of a string.
      >
      Why don't you post the requirements for both of these functions, and
      the code you've written so far, and we'll see if we can assist you in
      getting it right.
      These are the functions of Stephen G Kochan posted on his website, but
      to answer my book questions I miss the substr and removestr function
      to understand how these functions are implemented.

      int findString (const char source[], const char s[])
      {
      int i, j, foundit = false;

      // try each character in source

      for ( i = 0; source[i] != '\0' && !foundit; ++i ) {
      foundit = true;

      // now see if corresponding chars from s match

      for ( j = 0; s[j] != '\0' && foundit; ++j )
      if ( source[j + i] != s[j] || source[j + i] == '\0' )
      foundit = false;

      if (foundit)
      return i;
      }

      return -1;
      }



      10-7
      /* insert string s into string source starting at i
      This function uses the stringLength function defined
      in the chapter.

      Note: this function assumes source is big enough
      to store the inserted string (dangerous!) */

      void insertString (char source[], char s[], int i)
      {
      int j, lenS, lenSource;

      /* first, find out how big the two strings are */

      lenSource = stringLength (source);
      lenS = stringLength (s);

      /* sanity check here -- note that i == lenSource
      effectively concatenates s onto the end of source */

      if (i lenSource)
      return;

      /* now we have to move the characters in source
      down from the insertion point to make room for s.
      Note that we copy the string starting from the end
      to avoid overwriting characters in source.
      We also copy the terminating null (j starts at lenS)
      as well since the final result must be null-terminated */

      for ( j = lenSource; j >= i; --j )
      source [lenS + j] = source [j];

      /* we've made room, now copy s into source at the
      insertion point */

      for ( j = 0; j < lenS; ++j )
      source [j + i] = s[j];
      }



      10-9
      bool replaceString (char source [], char s1[], char s2[])
      {
      int index;

      // first locate s1 inside the source

      index = findString (source, s1);

      if ( index == -1 )
      return false;

      // now delete s1 from the source

      removeString (source, index, stringLength (s1));

      // now insert the new string

      insertString (source, s2, index);

      return true;
      }

      Comment

      • Martin Ambuhl

        #4
        Re: Missing removeStr and substr function

        tfelb wrote:
        Hi all!
        >
        I bought the book "Programmin g in C" by Stephen G Kochan. I miss 2
        answers at his website.
        (removestr and the substr function) How can I implement these
        functions? It would be wonderful if someone can help me out, because
        Stephen Kochan is not reachable.
        A simple Google search yields
        <http://csourcesearch.n et/package/fk/0.6.7/fk-0.6.7/lib/removestr.c>
        <http://www.koders.com/c/fid88DBABDF4CD0 1D6FBE11E7B5CB6 0CC2BEA98E60B.a spx>

        I have made no effort to check the quality of the code.
        In any case, comp.lang.c is not a sources-wanted newsgroup, and there
        _are_ such newsgroups. Try one.

        Comment

        • Martin Ambuhl

          #5
          Re: Missing removeStr and substr function

          tfelb wrote:
          Hi all!
          >
          I bought the book "Programmin g in C" by Stephen G Kochan. I miss 2
          answers at his website.
          (removestr and the substr function) How can I implement these
          functions? It would be wonderful if someone can help me out, because
          Stephen Kochan is not reachable.
          Did you try <mailto:steve@k ochan-wood.comas
          <http://www.kochan-wood.com/AboutUs.htmsugg ests?

          Comment

          • CBFalconer

            #6
            Re: Missing removeStr and substr function

            tfelb wrote:
            Lew Pitcher <lpitc...@teksa vvy.comwrote:
            >tfelb <tomico...@gmai l.comwrote:
            >>
            >>I bought the book "Programmin g in C" by Stephen G Kochan. I miss
            >>2 answers at his website. (removestr and the substr function)
            >>How can I implement these functions? It would be wonderful if
            >>someone can help me out, because Stephen Kochan is not reachable.
            >>
            .... snip ...
            >>
            >Why don't you post the requirements for both of these functions,
            >and the code you've written so far, and we'll see if we can
            >assist you in getting it right.
            >
            These are the functions of Stephen G Kochan posted on his website,
            but to answer my book questions I miss the substr and removestr
            function to understand how these functions are implemented.
            >
            int findString (const char source[], const char s[])
            .... snip much code ...

            You posted all that but didn't bother to answer Lews question.
            Describe, in detail, what those functions (substr and removestr)
            do. Include a complete prototype.


            --
            Chuck F (cbfalconer at maineline dot net)
            <http://cbfalconer.home .att.net>
            Try the download section.



            --
            Posted via a free Usenet account from http://www.teranews.com

            Comment

            • tfelb

              #7
              Re: Missing removeStr and substr function

              On 26 Nov., 22:53, CBFalconer <cbfalco...@yah oo.comwrote:
              tfelb wrote:
              Lew Pitcher <lpitc...@teksa vvy.comwrote:
              tfelb <tomico...@gmai l.comwrote:
              >
              >I bought the book "Programmin g in C" by Stephen G Kochan. I miss
              >2 answers at his website. (removestr and the substr function)
              >How can I implement these functions? It would be wonderful if
              >someone can help me out, because Stephen Kochan is not reachable.
              >
              ... snip ...
              >
              Why don't you post the requirements for both of these functions,
              and the code you've written so far, and we'll see if we can
              assist you in getting it right.
              >
              These are the functions of Stephen G Kochan posted on his website,
              but to answer my book questions I miss the substr and removestr
              function to understand how these functions are implemented.
              >
              int findString (const char source[], const char s[])
              >
              ... snip much code ...
              >
              You posted all that but didn't bother to answer Lews question.
              Describe, in detail, what those functions (substr and removestr)
              do. Include a complete prototype.
              >
              --
              Chuck F (cbfalconer at maineline dot net)
              <http://cbfalconer.home .att.net>
              Try the download section.
              >
              --
              Posted via a free Usenet account fromhttp://www.teranews.co m- Zitierten Text ausblenden -
              >
              - Zitierten Text anzeigen -
              Thanks for all!

              Comment

              • tfelb

                #8
                Re: Missing removeStr and substr function

                On 27 Nov., 16:08, tfelb <tomico...@gmai l.comwrote:
                On 26 Nov., 22:53, CBFalconer <cbfalco...@yah oo.comwrote:
                >
                >
                >
                >
                >
                tfelb wrote:
                Lew Pitcher <lpitc...@teksa vvy.comwrote:
                >tfelb <tomico...@gmai l.comwrote:
                >
                >>I bought the book "Programmin g in C" by Stephen G Kochan. I miss
                >>2 answers at his website. (removestr and the substr function)
                >>How can I implement these functions? It would be wonderful if
                >>someone can help me out, because Stephen Kochan is not reachable.
                >
                ... snip ...
                >
                >Why don't you post the requirements for both of these functions,
                >and the code you've written so far, and we'll see if we can
                >assist you in getting it right.
                >
                These are the functions of Stephen G Kochan posted on his website,
                but to answer my book questions I miss the substr and removestr
                function to understand how these functions are implemented.
                >
                int findString (const char source[], const char s[])
                >
                ... snip much code ...
                >
                You posted all that but didn't bother to answer Lews question.
                Describe, in detail, what those functions (substr and removestr)
                do. Include a complete prototype.
                >
                --
                Chuck F (cbfalconer at maineline dot net)
                <http://cbfalconer.home .att.net>
                Try the download section.
                >
                --
                Posted via a free Usenet account fromhttp://www.teranews.co m-Zitierten Text ausblenden -
                >
                - Zitierten Text anzeigen -
                >
                Thanks for all!- Zitierten Text ausblenden -
                >
                - Zitierten Text anzeigen -
                I coded the substring function and it works fine but I have problems
                with the removestr function. I want to code this function without any
                pointers. I'm not sure how can I delete a char in C because '\0' is
                the end of each string and it terminates the string. I tried to set
                dst[i] = ""; but then I got an errormessage "warning: assignment makes
                integer from pointer without a cast", so "" doesn't work.

                Thanks for any help!

                Tom

                Prototyp: void removestr(char [], char [])

                Use:

                char string[100] = "This is a text\n";
                removestr(strin g,"This");
                printf("%s",str ing) /* the result should be "is a text" */


                void removestr (char dst[], char find[])
                {
                int i,l;
                for(i = 0, l = 0; dst[i] != '\0' && find[l] != '\0'; i++, l++)
                if(dst[i] == find[l])
                {
                dst[i] = '\0'; /* I think here is the problem because it terminates
                the whole dst */
                }
                dst[i] = '\0';
                }

                Comment

                • Lew Pitcher

                  #9
                  Re: Missing removeStr and substr function

                  On Dec 2, 10:56 am, tfelb <tomico...@gmai l.comwrote:
                  On 27 Nov., 16:08, tfelb <tomico...@gmai l.comwrote:
                  >
                  >
                  >
                  On 26 Nov., 22:53, CBFalconer <cbfalco...@yah oo.comwrote:
                  >
                  tfelb wrote:
                  Lew Pitcher <lpitc...@teksa vvy.comwrote:
                  tfelb <tomico...@gmai l.comwrote:
                  >
                  >I bought the book "Programmin g in C" by Stephen G Kochan. I miss
                  >2 answers at his website. (removestr and the substr function)
                  >How can I implement these functions? It would be wonderful if
                  >someone can help me out, because Stephen Kochan is not reachable.
                  >
                  ... snip ...
                  >
                  Why don't you post the requirements for both of these functions,
                  and the code you've written so far, and we'll see if we can
                  assist you in getting it right.
                  >
                  These are the functions of Stephen G Kochan posted on his website,
                  but to answer my book questions I miss the substr and removestr
                  function to understand how these functions are implemented.
                  >
                  int findString (const char source[], const char s[])
                  >
                  ... snip much code ...
                  >
                  You posted all that but didn't bother to answer Lews question.
                  Describe, in detail, what those functions (substr and removestr)
                  do. Include a complete prototype.
                  >
                  --
                  Chuck F (cbfalconer at maineline dot net)
                  <http://cbfalconer.home .att.net>
                  Try the download section.
                  >
                  --
                  Posted via a free Usenet account fromhttp://www.teranews.co m-ZitiertenText ausblenden -
                  >
                  - Zitierten Text anzeigen -
                  >
                  Thanks for all!- Zitierten Text ausblenden -
                  >
                  - Zitierten Text anzeigen -
                  >
                  I coded the substring function and it works fine but I have problems
                  with the removestr function. I want to code this function without any
                  pointers. I'm not sure how can I delete a char in C because '\0' is
                  the end of each string and it terminates the string. I tried to set
                  dst[i] = ""; but then I got an errormessage "warning: assignment makes
                  integer from pointer without a cast", so "" doesn't work.
                  >
                  Thanks for any help!
                  >
                  Tom
                  >
                  Prototyp: void removestr(char [], char [])
                  >
                  Use:
                  >
                  char string[100] = "This is a text\n";
                  removestr(strin g,"This");
                  printf("%s",str ing) /* the result should be "is a text" */
                  >
                  void removestr (char dst[], char find[])
                  {
                  int i,l;
                  for(i = 0, l = 0; dst[i] != '\0' && find[l] != '\0'; i++, l++)
                  if(dst[i] == find[l])
                  {
                  dst[i] = '\0'; /* I think here is the problem because it terminates
                  the whole dst */
                  >
                  }
                  dst[i] = '\0';
                  }

                  OK, well you really missed the idea, didn't you? ;-)

                  I'm not even going to attempt to help fix your immediate problem in
                  this code, as this code does not now (and likely never will) answer
                  the requirement of deleting an arbitrary substring from an arbitrary
                  string.

                  So, lets start at the beginning; here's how I would delete an
                  arbitrary substring from an arbitrary string:

                  1) locate and note the beginning of the substring in the string - If
                  not found then exit
                  2) locate and note the first character following the substring in the
                  string
                  3) for each character in the substring,
                  copy the character following the substring (point 2) over the
                  character in the substring (point 1)
                  move forward one character in the substring (point 1)
                  move forward one character following the substring (point 2)


                  void removestr(char *dst, char *find)
                  {
                  char *start, *end;
                  if (!(start = end = substring(dst,f ind))) return; /* exit if the
                  substring cant be found */

                  while (*find) {++find; ++end;} /* advance
                  past substring */
                  while (*end) {*start = *end; ++start; ++end;} /* copy
                  remainder over substring */
                  }

                  HTH
                  --
                  Lew

                  Comment

                  • Lew Pitcher

                    #10
                    Re: Missing removeStr and substr function

                    On Dec 3, 10:08 am, Lew Pitcher <lpitc...@teksa vvy.comwrote:
                    On Dec 2, 10:56 am, tfelb <tomico...@gmai l.comwrote:
                    >
                    >
                    >
                    On 27 Nov., 16:08, tfelb <tomico...@gmai l.comwrote:
                    >
                    On 26 Nov., 22:53, CBFalconer <cbfalco...@yah oo.comwrote:
                    >
                    tfelb wrote:
                    Lew Pitcher <lpitc...@teksa vvy.comwrote:
                    >tfelb <tomico...@gmai l.comwrote:
                    >
                    >>I bought the book "Programmin g in C" by Stephen G Kochan. I miss
                    >>2 answers at his website. (removestr and the substr function)
                    >>How can I implement these functions? It would be wonderful if
                    >>someone can help me out, because Stephen Kochan is not reachable.
                    >
                    ... snip ...
                    >
                    >Why don't you post the requirements for both of these functions,
                    >and the code you've written so far, and we'll see if we can
                    >assist you in getting it right.
                    >
                    These are the functions of Stephen G Kochan posted on his website,
                    but to answer my book questions I miss the substr and removestr
                    function to understand how these functions are implemented.
                    >
                    int findString (const char source[], const char s[])
                    >
                    ... snip much code ...
                    >
                    You posted all that but didn't bother to answer Lews question.
                    Describe, in detail, what those functions (substr and removestr)
                    do. Include a complete prototype.
                    >
                    --
                    Chuck F (cbfalconer at maineline dot net)
                    <http://cbfalconer.home .att.net>
                    Try the download section.
                    >
                    --
                    Posted via a free Usenet account fromhttp://www.teranews.co m-ZitiertenTextau sblenden -
                    >
                    - Zitierten Text anzeigen -
                    >
                    Thanks for all!- Zitierten Text ausblenden -
                    >
                    - Zitierten Text anzeigen -
                    >
                    I coded the substring function and it works fine but I have problems
                    with the removestr function. I want to code this function without any
                    pointers. I'm not sure how can I delete a char in C because '\0' is
                    the end of each string and it terminates the string. I tried to set
                    dst[i] = ""; but then I got an errormessage "warning: assignment makes
                    integer from pointer without a cast", so "" doesn't work.
                    >
                    Thanks for any help!
                    >
                    Tom
                    >
                    Prototyp: void removestr(char [], char [])
                    >
                    Use:
                    >
                    char string[100] = "This is a text\n";
                    removestr(strin g,"This");
                    printf("%s",str ing) /* the result should be "is a text" */
                    >
                    void removestr (char dst[], char find[])
                    {
                    int i,l;
                    for(i = 0, l = 0; dst[i] != '\0' && find[l] != '\0'; i++, l++)
                    if(dst[i] == find[l])
                    {
                    dst[i] = '\0'; /* I think here is the problem because it terminates
                    the whole dst */
                    >
                    }
                    dst[i] = '\0';
                    }
                    >
                    OK, well you really missed the idea, didn't you? ;-)
                    >
                    I'm not even going to attempt to help fix your immediate problem in
                    this code, as this code does not now (and likely never will) answer
                    the requirement of deleting an arbitrary substring from an arbitrary
                    string.
                    >
                    So, lets start at the beginning; here's how I would delete an
                    arbitrary substring from an arbitrary string:
                    >
                    1) locate and note the beginning of the substring in the string - If
                    not found then exit
                    2) locate and note the first character following the substring in the
                    string
                    3) for each character in the substring,
                    copy the character following the substring (point 2) over the
                    character in the substring (point 1)
                    move forward one character in the substring (point 1)
                    move forward one character following the substring (point 2)
                    >
                    void removestr(char *dst, char *find)
                    {
                    char *start, *end;
                    if (!(start = end = substring(dst,f ind))) return; /* exit if the
                    substring cant be found */
                    >
                    while (*find) {++find; ++end;} /* advance
                    past substring */
                    while (*end) {*start = *end; ++start; ++end;} /* copy
                    remainder over substring */
                    >
                    }
                    >
                    HTH
                    --
                    Lew
                    Oops... gotta fix that boundary condition, don't I? ;-)

                    void removestr(char *dst, char *find)
                    {
                    char *start, *end;
                    if (!(start = end = substring(dst,f ind)))
                    return; /* exit if cant find substring */

                    while (*find)
                    {++find; ++end;} /* advance past substring */
                    while (*start = *end)
                    {++start; ++end;} /* copy remainder over substring */

                    }

                    Comment

                    • tfelb

                      #11
                      Re: Missing removeStr and substr function

                      On Dec 3, 4:13 pm, Lew Pitcher <lpitc...@teksa vvy.comwrote:
                      On Dec 3, 10:08 am, Lew Pitcher <lpitc...@teksa vvy.comwrote:
                      >
                      >
                      >
                      >
                      >
                      On Dec 2, 10:56 am, tfelb <tomico...@gmai l.comwrote:
                      >
                      On 27 Nov., 16:08, tfelb <tomico...@gmai l.comwrote:
                      >
                      On 26 Nov., 22:53, CBFalconer <cbfalco...@yah oo.comwrote:
                      >
                      tfelb wrote:
                      Lew Pitcher <lpitc...@teksa vvy.comwrote:
                      tfelb <tomico...@gmai l.comwrote:
                      >
                      >I bought the book "Programmin g in C" by Stephen G Kochan. I miss
                      >2 answers at his website. (removestr and the substr function)
                      >How can I implement these functions? It would be wonderful if
                      >someone can help me out, because Stephen Kochan is not reachable.
                      >
                      ... snip ...
                      >
                      Why don't you post the requirements for both of these functions,
                      and the code you've written so far, and we'll see if we can
                      assist you in getting it right.
                      >
                      These are the functions of Stephen G Kochan posted on his website,
                      but to answer my book questions I miss the substr and removestr
                      function to understand how these functions are implemented.
                      >
                      int findString (const char source[], const char s[])
                      >
                      ... snip much code ...
                      >
                      You posted all that but didn't bother to answer Lews question.
                      Describe, in detail, what those functions (substr and removestr)
                      do. Include a complete prototype.
                      >
                      --
                      Chuck F (cbfalconer at maineline dot net)
                      <http://cbfalconer.home .att.net>
                      Try the download section.
                      >
                      --
                      Posted via a free Usenet account fromhttp://www.teranews.co m-ZitiertenTextau sblenden-
                      >
                      - Zitierten Text anzeigen -
                      >
                      Thanks for all!- Zitierten Text ausblenden -
                      >
                      - Zitierten Text anzeigen -
                      >
                      I coded the substring function and it works fine but I have problems
                      with the removestr function. I want to code this function without any
                      pointers. I'm not sure how can I delete a char in C because '\0' is
                      the end of each string and it terminates the string. I tried to set
                      dst[i] = ""; but then I got an errormessage "warning: assignment makes
                      integer from pointer without a cast", so "" doesn't work.
                      >
                      Thanks for any help!
                      >
                      Tom
                      >
                      Prototyp: void removestr(char [], char [])
                      >
                      Use:
                      >
                      char string[100] = "This is a text\n";
                      removestr(strin g,"This");
                      printf("%s",str ing) /* the result should be "is a text" */
                      >
                      void removestr (char dst[], char find[])
                      {
                      int i,l;
                      for(i = 0, l = 0; dst[i] != '\0' && find[l] != '\0'; i++, l++)
                      if(dst[i] == find[l])
                      {
                      dst[i] = '\0'; /* I think here is the problem because it terminates
                      the whole dst */
                      >
                      }
                      dst[i] = '\0';
                      }
                      >
                      OK, well you really missed the idea, didn't you? ;-)
                      >
                      I'm not even going to attempt to help fix your immediate problem in
                      this code, as this code does not now (and likely never will) answer
                      the requirement of deleting an arbitrary substring from an arbitrary
                      string.
                      >
                      So, lets start at the beginning; here's how I would delete an
                      arbitrary substring from an arbitrary string:
                      >
                      1) locate and note the beginning of the substring in the string - If
                      not found then exit
                      2) locate and note the first character following the substring in the
                      string
                      3) for each character in the substring,
                      copy the character following the substring (point 2) over the
                      character in the substring (point 1)
                      move forward one character in the substring (point 1)
                      move forward one character following the substring (point 2)
                      >
                      void removestr(char *dst, char *find)
                      {
                      char *start, *end;
                      if (!(start = end = substring(dst,f ind))) return; /* exit if the
                      substring cant be found */
                      >
                      while (*find) {++find; ++end;} /* advance
                      past substring */
                      while (*end) {*start = *end; ++start; ++end;} /* copy
                      remainder over substring */
                      >
                      }
                      >
                      HTH
                      --
                      Lew
                      >
                      Oops... gotta fix that boundary condition, don't I? ;-)
                      >
                      void removestr(char *dst, char *find)
                      {
                      char *start, *end;
                      if (!(start = end = substring(dst,f ind)))
                      return; /* exit if cant find substring */
                      >
                      while (*find)
                      {++find; ++end;} /* advance past substring */
                      while (*start = *end)
                      {++start; ++end;} /* copy remainder over substring */
                      >
                      >
                      >
                      }- Hide quoted text -
                      >
                      - Show quoted text -- Hide quoted text -
                      >
                      - Show quoted text -
                      Oh THANK YOU very much! Overwriting is the solution.

                      Tom

                      Comment

                      • Barry Schwarz

                        #12
                        Re: Missing removeStr and substr function

                        On Sun, 2 Dec 2007 07:56:54 -0800 (PST), tfelb <tomicoder@gmai l.com>
                        wrote:

                        snip
                        >I coded the substring function and it works fine but I have problems
                        >with the removestr function. I want to code this function without any
                        >pointers. I'm not sure how can I delete a char in C because '\0' is
                        >the end of each string and it terminates the string. I tried to set
                        >dst[i] = ""; but then I got an errormessage "warning: assignment makes
                        >integer from pointer without a cast", so "" doesn't work.
                        >
                        >Thanks for any help!
                        >
                        >Tom
                        >
                        >Prototyp: void removestr(char [], char [])
                        >
                        >Use:
                        >
                        >char string[100] = "This is a text\n";
                        >removestr(stri ng,"This");
                        There is no space after the This, so
                        >printf("%s",st ring) /* the result should be "is a text" */
                        the result should be " is a text\n".
                        >
                        >
                        >void removestr (char dst[], char find[])
                        You say you don't want to use pointers. Are you aware that when an
                        array is passed into a function, the array argument is converted to a
                        pointer to the first element. Your calling statement is identical to
                        removestr(&stri ng[0], "This");
                        If it were legal syntax, "This" could be replaced with &"This"[0].
                        >{
                        >int i,l;
                        >for(i = 0, l = 0; dst[i] != '\0' && find[l] != '\0'; i++, l++)
                        >if(dst[i] == find[l])
                        >{
                        dst[i] = '\0'; /* I think here is the problem because it terminates
                        >the whole dst */
                        >}
                        If dst[0] != find[0], you increment both i and l. Your next iteration
                        through the loop will test dst[1] and find[1] but you should be
                        checking dst[1] and find[0].
                        >dst[i] = '\0';
                        >}
                        Consider the more general case of removing the b from abc. You want
                        the answer to be ac. If your design does not move the a (there is no
                        need to), then you must move the c and any subsequent characters
                        including the terminating '\0' over to where the b was. Think of the
                        one function that will allow you to move data where the source and
                        destination overlap.


                        Remove del for email

                        Comment

                        • =?UTF-8?q?Harald_van_D=C4=B3k?=

                          #13
                          Re: Missing removeStr and substr function

                          On Wed, 05 Dec 2007 18:47:28 -0800, Barry Schwarz wrote:
                          On Sun, 2 Dec 2007 07:56:54 -0800 (PST), tfelb <tomicoder@gmai l.com>
                          wrote:
                          >>void removestr (char dst[], char find[])
                          >
                          You say you don't want to use pointers. Are you aware that when an
                          array is passed into a function, the array argument is converted to a
                          pointer to the first element. Your calling statement is identical to
                          removestr(&stri ng[0], "This");
                          If it were legal syntax, "This" could be replaced with &"This"[0].
                          What's invalid about &"This"[0]?

                          Comment

                          Working...