我有这个函数来检查字符串是否是这样的:
void get_string(char *prompt, char *input, int length)
{
printf("%s", prompt);
fgets(input, length, stdin);
if (input[strlen(input) - 1] != '\n')
{
int dropped = 0;
while (fgetc(stdin) != '\n')
{
dropped++;
}
if (dropped > 0)
{
printf("Errore: Inserisci correttamente la stringa.\n");
get_string(prompt, input, length);
}
}else{
input[strlen(input) - 1] = '\0';
}
return;
}
只有当字符串长于length
时,我才能使用此函数重复输入。
如果我还必须检查字符串是否更短,我该怎么办?
最佳答案
如果字符串较短,fgets
照顾那个。缓冲区不会满,换行符将放在字符串的末尾。
简单地检查是否strlen(input) < length
在 fgets
之后.如果该条件评估为真,则您读取的字节数少于缓冲区大小允许的最大字节数。
关于c - 如何在C中检查输入字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50563472/