使用scanf()以指定格式读取并存储
请问如何只用一个scanf()读入“babylong5John”这样格式字符串,并存储为“babylong5”呢?程序代码:
int main(void) { char string[50] = {0} ; scanf("%s[1234567890^a-z]", string); printf("\n%s ",string); }
只读取前一个字符串和相邻的数字,忽略后面字符串。
请问
1,请问 ^ 的作用理解错了么,实际运行输出为babylong5John,没有忽略John
2,测试时发现里一个有趣的现象请问是为什么?
当char string = 0;scanf() 使用%s 不能存储输入的数字 程序不输出,return 负值。
但改成数组 就能正确输出。
程序代码:
#include <stdio.h> int main(void) { /*char string = 0; 这个输入数字不行*/ char string[1] = {0} ; scanf("%s", string); printf("\n%s ",string); }结果发现只是缺少 & .....