| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6081 人关注过本帖
标题:【求助】怎么限制字符串长度大小
只看楼主 加入收藏
我只是个孩子
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2016-12-14
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:10 
【求助】怎么限制字符串长度大小

如何输入一个长度不超过20的字符串?
这个是我写的
#include<stdio.h>
int main()
{

char a[20];
 int n=20;
 a[19]=0;
 for(int i=0;i<n;i++)
{
        a[19]='\0';
scanf("%s",&a[i]);
}
printf("%s",a);
return 0;
}
他会无线输入 为什么啊 求解决方法 如果我是错的
请请教哪里错了 还有字符串大小长度的限制方法
搜索更多相关主题的帖子: 字符串 如何 
2016-12-14 01:19
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:3 
scanf("%20s",a);试试看,不用加循环结构,连续输入注意,中间不能有空格断开~引用数组名前不用加&~诶,到底还是基础没学好~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-14 01:31
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:3 
程序代码:
#include<stdio.h>
int main()
{

    char a[21];
    int n = 21;
    a[n-1] = 0;
    for (int i = 0; i < n - 1; i++)
    {
        scanf("%c", &a[i]);
        if (a[i] == '\n')//如果可以接收回车,这里不用判断
        {
            a[i] = 0;
            break;
        }
    }
    printf("%s", a);
    return 0;
}
2016-12-14 09:24
小亦庄葛三娘
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2016-10-23
收藏
得分:3 
程序代码:
#include<stdio.h>
int main (void)
{
    int i;
    char ch[20];
    
    for(i = 0; i < 20; i++ )
        scanf("%c",&ch[i]);
    
    //while((ch = getchar()) != '\n ')
    //    continue;
        
    for(i = 0; i < 20; i++)
        printf("%c",ch[i]);
    
        putchar('\n');
        
    return 0;
}
2016-12-14 09:25
王子的新衣
Rank: 2
等 级:论坛游民
帖 子:19
专家分:17
注 册:2016-12-14
收藏
得分:3 
无限输入的话应该就是没有结束标志,要加break
2016-12-14 09:49
我只是个孩子
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2016-12-14
收藏
得分:0 
回复 2楼 九转星河
我试试 谢谢啊
2016-12-14 15:04
我只是个孩子
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2016-12-14
收藏
得分:0 
回复 3楼 grmmylbs
if (a[i] == '\n')//如果可以接收回车,这里不用判断 是什么意思
 不理解 我知道'\n'是结束符  如果我a[20]=0 不行吗
2016-12-14 15:10
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
'\n'是回车符,如果输入要求包含回车,那么这里就要保留回车符,一般情况下回车表示输入结束,这里就需要把回车替换成结束符'\0'
2016-12-14 15:37
小亦庄葛三娘
Rank: 1
等 级:新手上路
帖 子:24
专家分:5
注 册:2016-10-23
收藏
得分:0 
可以试试sizeof(a)/sizeof(char),这样就可以求一个边长数组的的长度
2016-12-14 15:42
我只是个孩子
Rank: 1
等 级:新手上路
帖 子:6
专家分:7
注 册:2016-12-14
收藏
得分:0 
回复 9楼 小亦庄葛三娘
谢谢了哦
2016-12-14 16:25
快速回复:【求助】怎么限制字符串长度大小
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016681 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved