954,500 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Need help with string loop

I have this program but a liitle confused about getting the loop to work. i have to write a program that inputs a text and a search string from the keyboard. using a function strstr locate the first occurrence of the search string of the line of text, and assign the location to a variable searchptr of type char* if the search string is found print the remaninder of the line of the text beginning with the search string then use strstr again to locate the next occurrence of the search string in the line of text. if a second occurrence is found print the remainder of the line beiginning with the second occurrence. hint: the second call to strstr should contain searchptr plus 1 as its first argument.

[code] so far i have this, can somebody help me. Thanks
#include
#include
#include


int main()
{
char line1[80];
char line2[80];
char *searchptr;
int i;

char found[80];

printf( "Enter Sentence\n");
gets(line1);

printf(" Enter String to Search: ");
gets(line2);

searchptr=strstr(line1, line2);
printf ("%s\n",searchptr);
while (searchptr!=NULL)
{
searchptr=strstr(line1, line2)+1;

}

return 0;
}

ellas747
Newbie Poster
11 posts since Sep 2004
Reputation Points: 10
Solved Threads: 0
 

inside the loop try:

searchptr=strstr(searchptr+1, line2);

You want to start each subsequent search at one char past where the last search stopped.

Oh, yeah, and move the printf INSIDE the loop so a) you print each string found, and
b) you DON'T print when searchptr is NULL:

searchptr=strstr(line1, line2);
while (searchptr!=NULL)
{
    printf ("%s\n",searchptr);
    searchptr=strstr(searchptr+1, line2);
}
Chainsaw
Posting Pro in Training
436 posts since Jun 2004
Reputation Points: 36
Solved Threads: 11
 

I tried doing this program but its still not working. Can somebody help me out.
Thanks,

Code:
#include
#include
#include


int main()
{
char line1[80];
char line2[80];
char *searchptr;
int i;

char found[80];

printf( "Enter Sentence\n");
gets(line1);

printf(" Enter String to Search: ");
gets(line2);

searchptr=strstr(line1, line2);
while (searchptr!=NULL)
{
searchptr=strstr(searchptr+1, line2);
printf ("%s\n",searchptr);

}

return 0;
}

ellas747
Newbie Poster
11 posts since Sep 2004
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You