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<[email protected]>,
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 <[email protected]> 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<[email protected]>,
> 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 <[email protected]> wrote:
>
>> On Thu, Jul 28, 2011 at 3:23 PM, Khabza Mkhize <[email protected]>
>> 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.
>>
>
>