请问,c中 怎么控制输入的字符串的长度

kikikuku 2008-04-27 07:38:55
比如说,要求字符串的最大长度为10
但是你想输入了15
但是输入了10个就不能在输入

要怎样实现呢?
请大家教教我,谢谢.
...全文
806 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xspace_time 2011-04-14
  • 打赏
  • 举报
回复
char x[10]不就行了吗
nobody@noone 2011-04-14
  • 打赏
  • 举报
回复
先取,然后抛弃后面的
AnYidan 2011-04-14
  • 打赏
  • 举报
回复
lz 如果用的是 scanf()的话,应该知道在程序执行到此时,是将控制权转交给了os,知道你输入回车后,os 才将控制权转交给了程序

c 中没有输入/输出的功能,都是调用 os 的, lz 不如找一种有输入/输出的功能的语言试试
ashucn 2011-04-14
  • 打赏
  • 举报
回复
哦,10个字符
scanf("%10s", string);
ashucn 2011-04-14
  • 打赏
  • 举报
回复
scanf("%9s", string);
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
接分先!
lovesgjs 2008-04-27
  • 打赏
  • 举报
回复
楼主的意思是说在输入了10个字符之后,再输入的话,屏幕上不会出现新的字符,就如同按键没响应?
如果是控制台程序,恐怕做不出这种效果,做出来的话相当于用C写Windows程序

c_spark 2008-04-27
  • 打赏
  • 举报
回复
控制台程序在命令提示符下输入时是以行为缓冲的,在没有回车之前结束输入之前这些数据无法内容是无法得到的
kikikuku 2008-04-27
  • 打赏
  • 举报
回复
就是
输入超过了指定的长度
但是还没有按回车
此时,即使再就想输入也输入不进去
kikikuku 2008-04-27
  • 打赏
  • 举报
回复


我的意思是当我输入字符超过超过10个,就算我想输入再不能在输入了
c_spark 2008-04-27
  • 打赏
  • 举报
回复
加上一个逻辑判断,如果输入的长度 > 10则提示重新输入
#include <stdio.h>
#include <string.h>

int main()
{
char str[20];
do
{
printf("string's length <= 10\n");
scanf("%s",str);
}while(strlen(str)>10);
return 0;
}

70,008

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧