Hello Khabza,
" I want to substring words, I might be using wrong terminology. But I tried
  the following example the only problem I have it cut word any where it
  likes. eg  "breathtaking" on my string is only bre."
 -- If you count your $string alphabeth by alphabeth from 0 to 100 including
every space then you will see that your "substr" function is right! I
believe that reg exp can also help as mentioned by Rob
Coops<khabza....@gmail.com>,
but you may have issues getting to your preffered destination on the
$string.
Without altering your code so much check the codes below maybe it could
help!

#!/usr/bin/perl -w
use strict;

  # this is your string to examine
my $string = "This is an awe-inspiring tour to the towering headland
known as Cape Point. Magnificent beaches, breathtaking views, historic and
picturesque coastal ";

     #ask the user to input the last word
     #of the string they are looking for
     # e.g if the want the following "This is an awe-inspiring tour to"
     # the user will enter the word "to"
    print "Enter the extends of your string:";
    chomp(my $newStr=<>);
     $newStr=checkStr($string,$newStr);  #subroutrine to check user input

     print substr $string,0,(index($string,"$newStr")+length("$newStr"));


     sub checkStr{
        my ($orig,$search)=@_;
          foreach((split/ /,$orig))
          {
            if($_ eq $search){return $search}
            }
      }

  Hello Rob Coops,
  Am sorry for the mix up!
 Thanks
On Thu, Jul 28, 2011 at 6:25 PM, timothy adigun <2teezp...@gmail.com> wrote:

> Hi Rob Coops,
>
>
> " I want to substring words, I might be using wrong terminology. But I
> tried
>   the following example the only problem I have it cut word any where it
>   likes. eg  "breathtaking" on my string is only bre."
>  -- If you count your $string alphabeth by alphabeth from 0 to 100
> including every space then you will see that your "substr" function is
> right! I believe that reg exp can also help as mentioned by 
> khabza<khabza....@gmail.com>,
> but you may have issues getting to your preffered destination on the
> $string.
> Without altering your code so much check the codes below maybe it could
> help!
>
> #!/usr/bin/perl -w
> use strict;
>
>   # this is your string to examine
>
> my $string = "This is an awe-inspiring tour to the towering headland
> known as Cape Point. Magnificent beaches, breathtaking views, historic and
> picturesque coastal ";
>
>      #ask the user to input the last word
>      #of the string they are looking for
>      # e.g if the want the following "This is an awe-inspiring tour to"
>      # the user will enter the word "to"
>     print "Enter the extends of your string:";
>     chomp(my $newStr=<>);  #remove LF from user input
>                                           # $newStr is used as your
> preffered destination on $string
>      $newStr=checkStr($string,$newStr);  #subroutrine to check user input
>
>      print substr $string,0,(index($string,"$newStr")+length("$newStr"));
>
>
>      sub checkStr{
>         my ($orig,$search)=@_;
>           foreach((split/ /,$orig))
>           {
>             if($_ eq $search){return $search}
>
>             }
>       }
>
> On Thu, Jul 28, 2011 at 2:36 PM, Rob Coops <rco...@gmail.com> wrote:
>
>> On Thu, Jul 28, 2011 at 3:23 PM, Khabza Mkhize <khabza....@gmail.com>
>> wrote:
>>
>> > I want to substring words, I might be using wrong terminology. But I
>> tried
>> > the following example the only problem I have it cut word any where it
>> > likes. eg  "breathtaking" on my string is only bre.
>> >
>> >
>> >      $string = "This is an awe-inspiring tour to the towering headland
>> > known as Cape Point. Magnificent beaches, breathtaking views, historic
>> and
>> > picturesque coastal ";
>> >
>> >     $rtioverview = substr ( $string ,  0 , 100 );
>> >
>> >     Reults = "This is an awe-inspiring tour to the towering headland
>> known
>> > as Cape Point. Magnificent beaches, bre";
>> >
>> >
>> >     any one can help to solve this problem please?
>> >
>> > --
>> >
>> > Developer
>> > Green IT Web <http://www.greenitweb.co.za>
>> > http://www.greenitweb.co.za
>> >
>>
>>
>> Using a regular expression can help here...
>>
>> #!/usr/local/bin/perl
>>
>> use strict;
>> use warnings;
>>
>> my $string = "This is an awe-inspiring tour to the towering headland known
>> as Cape Point. Magnificent beaches, breathtaking views, historic and
>> picturesque coastal ";
>>
>> my $num_words = 5;
>> if (my ($words) = $string =~ /((?:\w+(?:\W+|$)){$num_words})/) {
>>  print $words;
>> }
>>
>> That should do the trick... you can then very simply pick the number of
>> words you want to return.
>> Another option is to split the thing into the various words and stick that
>> into an array:
>>
>> my @words = split /\W+/, $string;
>>
>> It depends on what you want to do with it of course... also considder
>> doing
>> the following:
>>
>> if (my ($words) = $string =~ /((?:\w+(?:\W+|$)){1..$num_words})/) {
>>  print $words;
>> }
>>
>> Which will return you all words from 1 to the total number fo words so if
>> you input strign does not contain the total 100 or 5 or what ever other
>> number of words you are looking for at least you get the words that are
>> found.
>>
>
>

Reply via email to