| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1736 人关注过本帖
标题:为什么当输入一个字母后加数字输出no,而两个字母加数字就成yes了呢,请解答
只看楼主 加入收藏
whibla
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-8-1
结帖率:66.67%
收藏
已结贴  问题点数:8 回复次数:2 
为什么当输入一个字母后加数字输出no,而两个字母加数字就成yes了呢,请解答
输入一个字符串,判断其是否是C的合法标识符。
#include<stdio.h>
#include<string.h>
int main()
{
    char s[60];
    int n,m,i,k;
    while( scanf( "%d",&n ) != EOF )
    {
        while( n-- )
        {
            getchar();
            gets( s );
            k = 0;
            m = strlen( s );
            if( s[0] <'A' || s[0] >'Z' )
                if( s[0] < 'a' || s[0] > 'z' )
                    if( s[0] != '_')
                        k = 1;
            if( !k )
            for( i = 1; i < m; i++ )
            {
                if( s[i] < '0' || s[i] > '9')
                    if( s[i] < 'A' || s[i] > 'Z' )
                        if( s[i] <'a' || s[i] > 'z' )
                            if( s[i] != '_' )
                            {
                                 k = 1;
                                 break;
                            }

            }
            if( k )
                printf( "no\n" );
            else
                printf( "yes\n" );
        }
    }
    return 0;
}
搜索更多相关主题的帖子: 字符串 include 标识 字母 
2012-09-06 19:25
magicpaul007
Rank: 2
等 级:论坛游民
帖 子:7
专家分:58
注 册:2012-9-6
收藏
得分:8 
请问楼主你的getchar()是什么作用,首先gets()这个函数就是把一行的字符串读入进去,存储在s中,可是你先用了一个getchar()就是把每一行的第一个字符读入了,但是相当于你把第一个字符弄丢了。例如字符串“a5”,你判断的是“5”,这显然输出时no。其实你的程序问题不只是你说的情况出错,你试试输入单个字符,它输出都是no,所以正确的程序应该把getchar()注释掉!!!
2012-09-06 20:53
whibla
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2012-8-1
收藏
得分:0 
首先先谢谢你让我找到了错误,但你说的也有点问题,因为gets()函数是读入所有的字符,包括了输入了n之后的回车,这是不符合要求的,所以用getchar()消去回车。应该
int main()
{
    char s[60];
    int n,m,i,k;
    while( scanf( "%d",&n ) != EOF )
    {            加上getchar
        while( n-- )
        {
            getchar();去掉
            gets( s );

让我们共同进步吧
2012-09-06 21:07
快速回复:为什么当输入一个字母后加数字输出no,而两个字母加数字就成yes了呢,请 ...
数据加载中...
 
   



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

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