透明水晶 2023-08-25 17:15 采纳率: 96.8%
浏览 5
已结题

C语言 | 格式化输入的格式说明

C语言 | 格式化输入

下面这一句代码是啥意思?

sscanf(wifi_ssid, "%[0-9a-zA-Z_-]*", wifi_ssid);

原代码

    get_dev_ssid(wifi_ssid);
    APP_LOG_W("wifi_ssid:%s\n", wifi_ssid);
    sscanf(wifi_ssid, "%[0-9a-zA-Z_-]*", wifi_ssid);
    APP_LOG_W("wifi_ssid:%s\n", wifi_ssid);

运行LOG:

WIFI initialized
wifi_on end with 0.
[    3.348][I/WLAN.lwip][rt_wlan_lwip_protocol_register:499] eth device init ok name:w0
[    3.348][app_inf][wifi_set_ap_thread:3727]: ap mode self starting success!
[    3.348][app_inf][wifi_start_ap:3537]: start channel select:
[    3.348][app_inf][wifi_start_ap:3563]: ch: 7
[    3.348][app_wrn][wifi_start_ap:3584]: dev_ssid:Akenori vr02_34756372fe3f
<app_cfg.c>(5267 )[get_dev_ssid] Akenori vr02_34756372fe3f       
[    3.757][app_wrn][wifi_start_ap:3602]: wifi_ssid:Akenori vr02_34756372fe3f       
[    3.757][app_wrn][wifi_start_ap:3604]: wifi_ssid:Akenori
[    3.757][app_wrn][wifi_start_ap:3608]: wifi_pwd:1234567890
[    3.985][I/RTL_WIFI_DRV][rtl_wifi_ap_start:167] Akenori started

[    3.985][I/WLAN.mgnt][rt_wlan_start_ap:1499] start ap successs!
[    3.985][app_inf][wifi_set_ap_thread:3737]: wifi start ap success!
[DHCP] dhcpd_start: w0
[DHCP] ip_start: [192.168.169.2]
[DHCP] ip_start: [192.168.169.254]
  • 写回答

3条回答 默认 最新

  • 关注

    这是一种scanf()的用法, 给字符串赋值, 从第一个字母开始, 非标点继续, 遇到标点停止

    "%[0-9a-zA-Z_-]*"
    

    [ ] 中是格式中可以包含的字符, 这里就是数字, 大小写字母, 以及上下下划线


    星号 * 是字符数量可以是多个, 看个示例, 很简单

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char wifi_ssid[] = "0addfFF_-,;Ad";
        sscanf(wifi_ssid, "%[0-9a-zA-Z_-]*", wifi_ssid);
        printf("%s\n", wifi_ssid);
    
        strcpy(wifi_ssid, "0a;ddfFF_-,Ad");
        sscanf(wifi_ssid, "%[0-9a-zA-Z_-]*", wifi_ssid);
        printf("%s\n", wifi_ssid);
    
        strcpy(wifi_ssid, ";0addfFF_-,Ad");
        sscanf(wifi_ssid, "%[0-9a-zA-Z_-]*", wifi_ssid);
        printf("%s\n", wifi_ssid);
    
        return 0;
    }
    
    遇到 ,; 结束赋值
    0addfFF_-
    0a
    第一个就是 ; 那就根本不赋值, 所以字符串不变.
    ;0addfFF_-,Ad
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月2日
  • 已采纳回答 8月25日
  • 创建了问题 8月25日

悬赏问题

  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题