C程序中如何在输入时既可以输入字符串又可以输入整数?

比如“输入同一位同学的学号或者姓名,实现某某操作等”,我只会scanf("%s",&m);或者scanf("%d",&n)等等。请问怎么编可以使运行时输入英文(保存为字符串),整数(保存为整型)都可?
最新回答
不腿色的伤口

2024-12-01 06:29:53

很明显,不可能实现准确的区分字母和数字,因为字母在内存中是以它的ASCII的形式存储的,也就是说,字符就是数字,数字就是字符,只不过有些数字对应的字符无法显示在屏幕上,例如数字0对应'\0',它就显示不出来...
又例如,输入数字97,谁知道是字母a还是数字97~~~~谁也判断不出来,人家C语言就这样存储字符的,要怪就怪美国的贝尔实验室,谁叫它这么开发的C呢~

不过你可以,通过用户选择输入为什么类型,然后存储,或者报错。
例如请选择输入类型1字符串2数字,接收输入的,然后在进行存储和判断。
另外getchar等基本函数根据需要用,学习时候可以多练就行了。