Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
223 views
in Technique[技术] by (71.8m points)

c - Strstr function does not return a pointer to the first occurrence

EDIT: I'd like to write program that takes line of text and two characters from user, then connects characters and searches substring in line of text.

INPUT: 
abababab
a
b

OUTPUT
0

I've written some code, but it returns the wrong index.

So this is struct where I keep data

struct my_msg
{
char character1[3];
char character2[3];
char line[255];
 };

then I collect the data from the user

fgets(msg.linie, 255, stdin);
msg.line[strcspn(msg.line, "
")] = 0;
    
fgets(msg.character1, 3, stdin);
msg.character1[strcspn(character1, "
")] = 0;
    
   

fgets(msg.character2, 3, stdin);
msg.character2[strcspn(msg.character2, "
")] = 0;


then I combine characters by strcat:

char control[10];
strcat(control, msg.character1);
strcat(control, msg.character2);

and I'm looking for an occurrence in string by strstr function

char *result;
char *str = msg.line;
long position;     

if((result = strstr(str, control)) != NULL)
        {
            position = result-str;
            index = strlen(str) - position;
            printf("%d", index);
        }


but still not working.

question from:https://stackoverflow.com/questions/65851789/strstr-function-does-not-return-a-pointer-to-the-first-occurrence

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
Waitting for answers

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...