【问题标题】:How to select data from a char array in C?如何从C中的char数组中选择数据?
【发布时间】:2024-01-24 02:15:01
【问题描述】:

我有这个 char 数组:

char rcv_str = 1001ff;

但我想做这样的事情:

id = 10;
sts = 01;

在那之前,我无法进行这种分离。有什么建议吗?

【问题讨论】:

  • char rcv_str 既不是数组(它是单个字符)也不是 1001ff(这是一个带有无效后缀 ff 的整数常量,它甚至不应该编译)
  • 如果您想处理 char 数组,请执行此操作。你想从更大的数组中提取子字符串吗?

标签: c string char


【解决方案1】:

如果你的 rcv_str 总是相同的大小,你可以这样做:

#include <stdio.h>
#include <string.h>

int main()
{
    char rcv_str[] = "1001ff";
    char id[3];
    char sts[3];
    strncpy ( id, rcv_str, 2 );
    strncpy ( sts, &rcv_str[2], 2 );
    
    // Null terminate strings
    id[2] = 0;  
    sts[2] = 0;
    
    printf("id: %s sts: %s\n", id, sts);
    
    return 0;
}

【讨论】: