我提出以下用于搜索字符串的两个代码S2在串S1,如果S2中发现S1在那里发现匹配被打印和位置的,则地址 S1应该从匹配的位置被打印到的最后一个字符S1.如果s1 ="上帝是伟大的"并且s2 ="是"那么应该打印匹配的地址以及"很棒".
CODE 1:
#include<stdio.h>
#include<string.h>
void main()
{
char s1[80]="god is great",s2[10]="is";
char *searchptr;
searchptr=strstr(s1,s2);
printf("%p\n%p\n",searchptr,s1);
sprintf(s1,"%s",searchptr);
puts(s1);
}
CODE 2:
#include<stdio.h>
#include<string.h>
void main()
{
char s1[80],s2[10];
char *aptr;
printf("%s\n%s\n","enter a line","enter string to be searched");
fgets(s1,80,stdin);
printf("\n");
fgets(s2,10,stdin);
aptr=strstr(s1,s2);
printf("%p\n,aptr);
sprintf(s1,"%s",aptr);
puts(s1);
}
Run Code Online (Sandbox Code Playgroud)
在第一个代码中,我已经初始化了字符串及其工作,但第二个代码给出了意想不到的结果.它给出了匹配的地址在每种情况下(我已经尝试过)aptr = 0000000.使用fgets有什么不对,因为在第二个代码我想从键盘输入?
c ×1