gpt4 book ai didi

c - 使用 fgets 和 strstr 的意外结果

转载 作者:行者123 更新时间:2023-12-02 04:41:14 25 4
gpt4 key购买 nike

<分区>

我编写了以下两个代码,用于在字符串 s1 中搜索字符串 s2 以及是否在 s1 中找到 s2然后打印找到匹配的位置地址,s1 应该从匹配位置打印到 s1 的最后一个字符。如果 s1="god is great"s2="is" 那么匹配的地址以及 "is great" 应该被打印。

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);
}

在第一个代码中,我已经初始化了字符串及其工作,但第二个代码给出了非常意外的结果。它在每种情况下都给出了匹配地址(正如我所尝试的那样)aptr=0000000 。在第二个代码中使用 fgets 有什么问题我想接受输入从键盘?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com