C程序。取字符串输入到char指针问题

你好,我的C代码有一个问题。我试图让用户将一个字符串分配给一个先前定义的 char *srchstr;和 char *repstr; . 通过查看其他类似的帖子,我试着用下面的方式实现它,但还是失败了。

char *srchstr;
srchstr = malloc(256);
char *repstr;
repstr = malloc(256);
printf("what are you searching for?:");
scanf("%255s",&srchstr);
fflush(stdin);
printf("\n what do you want to replace it with?:");
scanf("%255s",&repstr);

Im getting this kinda errors:

程序背后的整个想法是让用户能够选择他想要替换的文本(整个代码与 srchstrrepstr 在代码中定义的,但我不能实现用户输入)这就是一开始的样子。

char *srchstr = "400,300";
char *repstr = "400,300: (000,000,000) #000000";

我怎样才能修正它,让用户可以输入… … srchstrrepstr ?

解决方案:

scanf("%255s",&srchstr); -> scanf("%255s", srchstr);

scanf("%255s",&repstr); -> scanf("%255s",repstr);

& 操作符意味着你要传递一个给定的内存空间的地址,实际上是一个指针,用来存储输入的内存空间,由一个变量名来标识,这将是很好的,因为 scanf 正是期望。

但由于 srchstrrepstr 已经是指针,您实际上是在传递指针的地址(指针的指针),而不是存储输入的内存空间的地址(内存空间的指针)。

侧面说明。

fflush(stdin)

引发未定义的行为,它的意思是与 stdout.

你可以将其替换为:

int c;
while((c = fgetc(stdin)) != '\n' && c != EOF) {}

给TA打赏
共{{data.count}}人
人已打赏
未分类

合并数组和按顺序洗牌两个数组。

2022-9-9 2:45:19

未分类

PrimeNG - TreeNodes[]已填充但TreeTable为空(Angular 6)

2022-9-9 2:45:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索