| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2898 人关注过本帖
标题:两个gets输入字符串,再用strlen测长度结果不正确的问题
只看楼主 加入收藏
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
结帖率:56.6%
收藏
 问题点数:0 回复次数:4 
两个gets输入字符串,再用strlen测长度结果不正确的问题
#include<stdio.h>
#include<string.h>

int main()
{
    char a[10];
    char b[4];
    gets(a);
    gets(b);
    int alen=strlen(a);
    int blen=strlen(b);
    printf("%d\n",alen);
   
    return 0;
}
输出结果为什么是下边的样子:
输入:1fdgre
输入:2efr
输出:0,4          难道不应该是6,4吗?

搜索更多相关主题的帖子: gets 输入 strlen 结果 int 
2018-02-19 23:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
溢出,
gets早就被C/C++废弃了,用fgets
2018-02-19 23:31
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
这样看看:
图片附件: 游客没有浏览图片的权限,请 登录注册

#include<stdio.h>
#include<string.h>

int main()
{
    char a[10];
    char b[4];
    gets(a);
    gets(b);
    int i;
    for (i=0; i<4; ++i)
        printf("%p\t%d\t%c\n", &b[i],b[i],b[i]);
    for (i=0; i<10; ++i)
        printf("%p\t%d\t%c\n", &a[i],a[i],a[i]);
    return 0;
}

[此贴子已经被作者于2018-2-20 04:59编辑过]

2018-02-20 04:55
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
收藏
得分:0 
回复 3楼 吹水佬
3q,明白了
2018-02-20 09:21
troyzyc
Rank: 1
等 级:新手上路
帖 子:108
专家分:0
注 册:2016-7-4
收藏
得分:0 
回复 2楼 rjsp
好,我试试
2018-02-20 09:21
快速回复:两个gets输入字符串,再用strlen测长度结果不正确的问题
数据加载中...
 
   



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

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