博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU2024 C语言合法标识符
阅读量:7043 次
发布时间:2019-06-28

本文共 1208 字,大约阅读时间需要 4 分钟。

问题链接:。入门训练题,用C语言编写程序。

问题简述参见上述链接。

问题分析C语言的标识符是字母或下划线('_')开头的,字母、下划线('_')和数字的字符串。

程序说明本来是用函数scanf()读入字符串的,但是空行(直接输入回车)时,有个小陷阱。所以,改用函数gets(),AC通过。这事情有点费解,细节决定成败。

用字符指针来处理应该是正解。求字符串长度,用for循环语句来出来需要两次查看字符串。

AC的C语言程序如下:

/* HDU2024 C语言合法标识符 */#include 
#include
int main(void){ int n; char s[50+1], *t; gets(s); n = atoi(s); while(n--) { gets(s); if(!isalpha(s[0]) && s[0] != '_') { // 非字母或下划线开头则不是标识符 printf("no\n"); } else { int flag = 1; t = s + 1; while(*t && flag) { // 字母、下划线或数字,则检查下一个字符 if(isalpha(*t)) { t++; continue; } if(*t == '_') { t++; continue; } if(isdigit(*t)) { t++; continue; } // 非字母、下划线或数字则不是标识符 flag = 0; break; } if(flag) printf("yes\n"); else printf("no\n"); } } return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7564680.html

你可能感兴趣的文章
每天laravel-20160719|Parser
查看>>
浅谈Linux开机启动流程
查看>>
Android 的NumberPicker相关问题
查看>>
dns安装配置
查看>>
我的友情链接
查看>>
安全世界观
查看>>
Linux网络编程基础_4_网络层(六)--移动IP与网络层设备
查看>>
Eclipse 的 J2EE Preview Server 端口设置
查看>>
winform 一个点击事件触发另一个点击事件
查看>>
关于empty()返回Fatal error: Can't use function return value in write context的错误问题
查看>>
为什么有了uwsgi还要nginx这个“前端”服务器
查看>>
Java BufferString
查看>>
Android笔记——Socket通信实现简单聊天室
查看>>
js修改onclick事件的四种方法
查看>>
我的友情链接
查看>>
linux文件管理必会知识
查看>>
Cocos2d-xna : 横版战略游戏开发实验4 Layer构建丰富的交互
查看>>
我的友情链接
查看>>
EDM邮件营销如何防止邮件被拒收和进垃圾箱
查看>>
Linux iostat监测IO状态
查看>>