我申请了一个数组变量char str[5]给用户输入,但是我不能确定用户到底会输入多少字符
而且字符输入超过5的话就会发生溢出问题,有没有什么办法能够防止用户输入过长而导致的溢出问题呢?我使用的是scanf,也就是说就算用户输入了很长的字符串,我也只观察前面5个字符,有什么办法吗:cry:cry 你可以看看scanf的定义啊,,specifier 可以是n。scanf("%5s", &str);
另外你也可以使用getchar()来实现 本帖最后由 samuelshu 于 2015-5-17 10:35 编辑
经过大量反复的实验和做法,我已经做出来了!好了,为了能帮助更多的人,我贴上源码
char password = {"hello"};
char size = { 0 };
char cTemp_Buffer;
for (int i = 0; i < 6; i++)
{
cTemp_Buffer=getchar();
size = cTemp_Buffer;
}
if (strlen(size)>6)
{
printf("密码错误!\n");
}
else
{
size='\0';
if ((strcmp(size, password)) == 0)
{
printf("密码正确!\n");
}
else
{
printf("密码错误!\n");
}
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
char array;
int i;
printf("请输入字符串:");
for (i=0; i<sizeof(array); i++)
{
scanf("%c", array+i);
}
array = '\0';
printf("array:%s\n", array);
}
楼主可以比较下
页:
[1]