gpt4 book ai didi

c - 安全地从用户那里获取字符串输入,包括空格

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:43 25 4
gpt4 key购买 nike

<分区>

我知道我可以使用 gets(char *) 从用户那里获取包含空格的字符串输入,但我读到了缓冲区溢出问题。使用 strcpystrcmp(以及一些其他函数)是不安全的,我们应该使用 strncpystrncmp 并明确提到输入的大小。 Stack Overflow 上的某个人告诉我的。所以,我担心使用 gets 从用户那里获取输入还是安全的?如果安全,请告诉我,我会继续使用它。如果不是,那么从用户那里安全地获取间隔字符串输入的另一种方法是什么?

#include <stdio.h> 
#include <stdlib.h>

int main()
{
char *a[2];

char b[] = "first";
char c[] = "second";

int s1; //,s2;

// printf("\nLong you want your %s string to be: \n",b);
//scanf("%d",&s1); fflush(stdin);

//printf("\nLong you want your %s string to be: \n",c);
// scanf("%d",&s1); fflush(stdin);

int i;
for(i=0; i<2; i++) {
printf("\nLong you want your %s string to be: \n",b);
scanf("%d",&s1); fflush(stdin);
a[i] = (char *) malloc(s1*sizeof(char));
}

printf("\nEnter the first string: \n");
scanf("%s", a[0]); fflush(stdin);

printf("\nEnter the second string: \n");
scanf("%s", a[1]); fflush(stdin);

printf("\nThe first string is: %s\n", a[0]);
printf("\nThe second string is: %s\n", a[1]);
}

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