#include <stdio.h>
#include <string.h>
int main(){
char buf[3];
char* ps[3]={
NULL}
;
char* ptr=NULL;
int j=0;
int i=0;
for(i=0;i<3;i++)
{
ptr=fgets(buf,100,stdin);
ps[i]=ptr;
}
printf("你要第几个句子");
scanf("%d",&j);
printf("%s",ps[j-1]);
return 0;
}
每次输出都是第三个字符串
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
Pliosauroidea 2021-09-14 20:06关注你用fgets,相当于把三个句子都堵到了同一个buf里面,后面输入的句子会覆盖前面的句子
把buf换成ptr[i]再跑
我总之大概改了一下#include <stdio.h> #include <string.h> int main() { char buf[100]; char *ps[3] = { NULL}; char *ptr = NULL; int j = 0; int i = 0; for (i = 0; i < 3; i++) { ps[i] = (char *)malloc(sizeof(char)*100); fgets(ps[i], 100, stdin); // ps[i] = ptr; } printf("你要第几个句子"); scanf("%d", &j); printf("%s", ps[j - 1]); return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用